java - 如何在Android中将数据从cordova插件传递到index.html

标签 java javascript android cordova

我正在创建显示调用日志的cordova应用程序,所以我制作了插件,并且我在 native java代码中获取调用日志,但我不知道如何将其传递回index.html。

这是我的插件 javascript

 navigator.callslog= {};
 navigator.callslog.show = function () { cordova.exec (null, null, "callslog", "show", []);};

这是我的插件的 java 代码

 @Override
 public boolean execute(String action, JSONArray args, CallbackContext callbackContext)
 {

        if (action.equals("show")) {
            // get call logs

            String calls = getCallDetails(callbackContext);
            callbackContext.success();
            Log.v("Calls", calls);

            this.webView.postMessage("callsLog", "show");
        } else {
            return false;
        }
        callbackContext.success();
        return true;
 }

在index.js中,我调用插件,数据打印在logcat中,它可以工作,但我不知道如何获取数据并在index.html中表示

onDeviceReady: function() {
    app.receivedEvent('deviceready');

    console.log('Recevedod event ');

    var callsLog= navigator.splashscreen.show();
}

谢谢大家

最佳答案

第一个参数是成功回调,第二个参数是失败回调。 而不是 null 和 null

你必须这样做

navigator.callslog.show = function () { cordova.exec (successcb, failcb, "callslog", "show", []);};

function successcb(s){
console.log(s);//what you passed from Java code
}

function failcb(e){
console.log("Err cb");
}

关于java - 如何在Android中将数据从cordova插件传递到index.html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24681907/

相关文章:

java - Java 中的什么在虚拟内存中使用 400M,我如何降低该使用量?

javascript - 确保我的函数返回变异对象作为同一类 typescript 的实例?

javascript - javascript中最合适的全局变量?

android - C2DM 源代码在哪里?

java - 在哪些情况下我们将变量设为公有而将方法设为私有(private)?

java - 使用应用程序 android 将图像上传到谷歌云存储

android - AChart 引擎条形图 - 向右滚动时隐藏系列

android - eclipse 中 android sdk 中的内容提供程序

java - 过滤并使用 txt 文件中的文本

javascript - 捕获获取错误