2016-08-19 3 views
0

iOS Cordovaプラグインを構築していますが、このプラグインには常に値を変更する変数があります。 jsからこの変数を返すこのプラグインメソッドを呼び出すとき、私はアクティブにしてObjective-cから常に新しい変更値を取得します。iOS Cordovaプラグインの変数変更のリスナーを維持します

これは私のコードです:だから私はvolumeDivは常に新しいボリューム値を保持したい締結する

getVolumeBtn.addEventListener('click', function() { 

            cordova.exec(
               function successCallback(data) { 
               volumeDiv.innerHTML ="Volume: "+ data; 
               }, 
               function errorCallback(err) { 
               alert('Error'); 
               }, 
               'VoiceControl', 
               'getRecognitionVolume', 
               [] 
               ); 
            }); 

/** 
*This method will return the Volume of the user's speech (It can be used as a UI feedback) 
*/ 
- (void) getRecognitionVolume:(CDVInvokedUrlCommand*)command 
{ 
    CDVPluginResult* pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:[NSString stringWithFormat:@"%1.6f", volumeLevel]]; 

    [pluginResult setKeepCallback:[NSNumber numberWithBool:YES]]; 

    [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; 
} 

JSコード。

ご協力いただければ幸いです。

答えて

0

問題は、私がsetKeepCallbackの働きを完全に理解していないことでした。 trueに設定すると、メソッドが実行されたままになり、変数が変更されるたびに新しい値が送信されると思いました。

私は値を変更するたびに結果を送信する必要があります。私は今、結果を渡すのはここ

です: (これは常に私のコードでの体積変化と呼ばれるハンドラである)

- (void) pollVolume 
{ 
    [self getRecognitionVolume:volumeCommand]; 

} 
関連する問題