簡體   English   中英

從Cordova插件的服務調用javascript方法

[英]Call javascript method from Cordova Plugin's service

我目前正在使用Cordova開發應用程序,因此開發了Cordova插件,該插件運行一項服務,並從該插件中啟動:

  public boolean execute(String action, JSONArray args, final CallbackContext callbackContext) throws JSONException {
switch(action){
  case "start":
  Intent startIntent = new Intent(context, BackgroundService.class);
  startIntent.putExtra("action", "play");
  context.startService(startIntent);
  return true;
 }
return false;
}

縮短了代碼的可讀性。 現在,通常我會使用回調從插件中調用javascript方法,但是由於我想使用該功能的服務,如何從那里調用方法(或可能是回調)?

提前非常感謝您:)。

好的,所以我沒有找到使用香草科爾多瓦的方法,但是此插件提供了我一直在尋找的功能: https : //github.com/bsorrentino/cordova-broadcaster

您必須在本機Android代碼中設置LocalBroadcastManager並發送一個Intent。 然后,您定義一個包含要發送的數據的捆綁包,並將其作為您的附加意圖。 然后,您通過廣播管理器發送意圖,並通過javascript接收意圖。

示例Java:

  startCallback = new Intent("callback");
  Bundle b = new Bundle();
  b.putString("callback", "start");
  startCallback.putExtras(b);
  LocalBroadcastManager.getInstance(applicationContext).sendBroadcastSync(startCallback);

示例Javascript:

var callbackListener = function( e ) {
       console.log("What kind of callback: " + e.callback);
    };

window.broadcaster.addEventListener( "callback", callbackListener);

我希望這對遇到類似問題的人有所幫助:)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM