2015-06-17 5 views
-1

У меня есть плагин cordova (broker-mqtt) в java. Из HTML, я называю этот плагин с помощью яваскрипта интерфейса следующим образом:Возвращаемое значение плагина Кордовы

function heartbeat() { 

      MqttPlugin.heartbeat({topic: "$EDC/tum/B8:27:EB:A6:A9:8A/HEARTBEAT-V1/mqtt/heartbeat"}); 
     } 

Ниже часть внутри моего яваскрипта интерфейса:

MqttPlugin.prototype.heartbeat = function(aString){ 
console.log("MqttPlugin.js: subscribe"); 
exec(
function(result){ /*alert("Mqtt Subscribe got the value" + result)*/ }, 
function(result){ /*alert("Error" + reply);*/ }, 
"MqttPlugin", 
"heartbeat", 
[aString.topic]); 
}; 

Следующая моя ява файл:

public boolean execute(String action, JSONArray args, 
         CallbackContext callbackContext) throws JSONException { 
    Log.d("Kura-MQTT", String.valueOf(status)); 
    if (android.os.Build.VERSION.SDK_INT >= 11) { 
     final StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder() 
       .permitAll().build(); 
     StrictMode.setThreadPolicy(policy); 
    } 

    if (action.equals("subscribe")) { 
     this.setOpts(args); 
     Log.d("Topic in subscribe", args.get(0).toString()); 

     //subscribe(); 

     this.cordova.getActivity().runOnUiThread(new Runnable() { 
      @Override 
      public void run() { 
       subscribe(); 
      } 
     }); 
     this.pluginCallbackContext = callbackContext; 

     Log.d("callbackcontext", pluginCallbackContext.toString()); 

     return true; 

    } 

Так что в принципе, подписка на функцию java продолжает получать сообщения в интервале исправлений. Я хочу отправить это сообщение в свой html. Я просмотрел документацию на кордовую андроиду, но это не помогло.

+0

Я могу получить возвращаемое значение в файл JavaScript для плагина. Любая идея, как мне взять его в html. Я попытался добавить эти возвращаемые значения в innerHtml из этого файла javascript. Но, похоже, он не распознает их здесь. –

ответ

0

Изменить

MqttPlugin.heartbeat({topic: "$EDC/tum/B8:27:EB:A6:A9:8A/HEARTBEAT-V1/mqtt/heartbeat"}); 

в

MqttPlugin.heartbeat({topic: "$EDC/tum/B8:27:EB:A6:A9:8A/HEARTBEAT-V1/mqtt/heartbeat"},successCallback,errorCallback); 

Вы можете выбрать порядок Params, если вы хотите

Затем измените

MqttPlugin.prototype.heartbeat = function(aString){ 
console.log("MqttPlugin.js: subscribe"); 
exec(
function(result){ /*alert("Mqtt Subscribe got the value" + result)*/ }, 
function(result){ /*alert("Error" + reply);*/ }, 
"MqttPlugin", 
"heartbeat", 
[aString.topic]); 
}; 

в

MqttPlugin.prototype.heartbeat = function(aString,success,error){ 
console.log("MqttPlugin.js: subscribe"); 
exec(
success, 
error, 
"MqttPlugin", 
"heartbeat", 
[aString.topic]); 
}; 

Наконец, создать successCallback функции

function successCallback(result){ 
    alert("Mqtt Subscribe got the value" + result); 
} 
Смежные вопросы