java - Cordova PhoneGap Android 回调与数据

标签 java javascript cordova phonegap-plugins cordova-plugins

我不知道如何将数据从 JAVA 返回到 javascript,以便我可以在 Android 上使用 Cordova 更新 UI。这里有两个按钮,当按下它们时,它们会增加位置计数器,我想返回到 UI 并更新屏幕,但无法弄清楚它是如何返回的。

我以为我可以将 switchPos 添加到回调中,但似乎无法在 JavaScript 中的任何位置拾取它,我计划使用“.innerHTML =”语句将值写入 UI。

这是插件 JavaScript。

cordova.define(‘myplugin', function (require, exports, module) {
   module.exports = {

    switch1: function (success, failure) {
    cordova.exec(success, failure, “MyPlugin", “switch1”, []);
    },

    switch2: function (success, failure) {
    cordova.exec(success, failure, “MyPlugin", “switch2”, []);
    }


  };
});

这是调用它们的 javascript。

 var myplugin = cordova.require('myplugin');

 var myapp = {

appButton1: function(){
     myplugin.switch1();
},

appButton2: function(){
     myplugin.switch2();
}

};

这是该插件的 JAVA 代码。

public class MyPlugin extends CordovaPlugin {

// actions
private static final String SWITCH1 = “switch”1;
private static final String SWITCH2 = “switch”2;

// callbacks
private CallbackContext connectCallback;

// Switch Counters
public static int switchPos1 = 1;
public static int switchPos2 = 1;


@Override
public boolean execute(String action, CordovaArgs args, CallbackContext callbackContext) throws JSONException {

    boolean validAction = true;

    if (action.equals(SWITCH1)) {
    Log.d("Valid Action = SWITCH1 Pos: “ + switchPos1);
    switchPos1++;
    callbackContext.success(switchPos1);

} else if (action.equals(SWITCH2)) {
    Log.d("Valid Action = SWITCH2 Pos: “ + switchPos2);
    switchPos2++;
    callbackContext.success(switchPos2);

} else { 
    validAction = false;
}

return validAction;

}

}

最佳答案

当您调用插件时,您必须传递成功和失败函数:

var myplugin = cordova.require('myplugin');

 var myapp = {

appButton1: function(){
     myplugin.switch1(function(data){alert(data);},function(error){alert(error);});
},

appButton2: function(){
     myplugin.switch2(function(data){alert(data);},function(error){alert(error);});
}

};

关于java - Cordova PhoneGap Android 回调与数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29068134/

相关文章:

java - 在 IWorkingSetSelectionDialog 中仅启用 Java 工作集

java - 如何在java中返回一个数组?使用 Eclipse

javascript - 如何将选定的链接/文本输入发布为输出答案

ruby-on-rails - Rails 3.2 和 phonegap

java - 实现前缀模式

javascript - 如何在 JavaScript 中的引号内插入变量

javascript - 使用 Webpack 4 构建 React 组件库

ios - Xcode 4 上旧项目的问题

javascript - Cordova 在点击时显示 InterstitialAd

java - 使用 gson 解析时成员字段被忽略