2017-10-05 6 views
0

私はカスタムプラグインを書いています。時々私はIonicでそれを表示できるように進捗状況の更新を送信したいと思います。私はCallbackContextで適切なメソッドを見つけることができませんでした。送信成功コールバックは1回だけ可能です。進行状況のコールバックを送信するにはどうすればよいですか?Cordova Androidプラグインが複数のコールバックを送信する(進行状況)

private void doHeavyStuff(final CallbackContext callbackContext){ 

    something.execute(new ResponseHandler() { 

      @Override 
      public void onProgress(String message) { 
       callbackContext.success(message); //what else ? 
      } 

      @Override 
      public void onFailure(String message) { 
       callbackContext.error(message); 
      } 

      @Override 
      public void onSuccess(String message) { 
       callbackContext.success(message); 
      } 
    }); 
} 

答えて

2

あなたはそれが複数回呼び出すことができるように、呼び出した上で削除されたコールバックインスタンスを停止するsetKeepCallback()を使用することができます。これを共有するための

public boolean execute(String action, JSONArray data, CallbackContext callbackContext) throws JSONException { 
    if(action.equals("doHeavyStuff"){ 
     // Start doing async heavy stuff... 

     // Preserve callback 
     PluginResult pluginResult = new PluginResult(PluginResult.Status.NO_RESULT); 
     pluginResult.setKeepCallback(true); 
     callbackContext.sendPluginResult(pluginResult); 
     return true; 
    } 
} 

private void doHeavyStuff(final CallbackContext callbackContext){ 
    something.execute(new ResponseHandler() { 
     @Override 
     public void onProgress(String message) { 
      PluginResult pluginResult = new PluginResult(PluginResult.Status.OK, message); 
      pluginResult.setKeepCallback(true); // keep callback 
      callbackContext.sendPluginResult(pluginResult); 
    } 

     @Override 
     public void onFailure(String message) { 
      callbackContext.error(message); 
     } 

     @Override 
     public void onSuccess(String message) { 
      callbackContext.success(message); 
     } 
    }); 
} 
+0

感謝を! +1 – David

+0

申し訳ありませんが、あなたのアプローチはうまくいきます! – Anthea

関連する問題