android - Cordova 插件 - Javascript 从 native 代码接收消息

标签 android cordova plugins sencha-touch-2

如以下文档所示:http://docs.phonegap.com/en/3.5.0/guide_platforms_android_plugin.md.html#Android%20Plugins

我覆盖了一个方法

 @Override
    public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
        if ("beep".equals(action)) {
            this.beep(args.getLong(0));
            callbackContext.success();
            return true;
        }
        return false;  // Returning false results in a "MethodNotFound" error.
    }

然后像这样从 Javascript 中调用它:

cordova.exec(<successFunction>, <failFunction>, <service>, <action>, [<args>]);

上面的 java native 代码只返回一个 bool 结果。如何让它返回一个字符串(或 JSON)并让 cordova.exec() 接收它?

p/s:我想使用 java native 代码从电子邮件中读取 JSON 字符串(项目列表)。它将返回到 Javascript 代码以呈现到 Sencha Touch 中的列表

最佳答案

您所链接的文档页面中提供了您问题的答案。检查页面上的最后一个代码示例:

private void echo(String message, CallbackContext callbackContext) {
        if (message != null && message.length() > 0) {
            callbackContext.success(message); //<-THIS LINE
        } else {
            callbackContext.error("Expected one non-empty string argument.");
        }
    }

根据文档:“callbackContext.success() 将原始消息字符串作为参数传递回 JavaScript 的成功回调。”

所以在 JS 中,如果你定义成功回调函数如下:

function onSuccess(message){
     console.log(message);
}

并调用它:

cordova.exec(onSuccess, ...)

它应该在成功时输出传递的 message 字符串参数的内容。

关于android - Cordova 插件 - Javascript 从 native 代码接收消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25196254/

相关文章:

plugins - 需要不受支持的动态重定位 R_ARM_REL32;用 -fPIC 重新编译

android - Android 上用于调试构建的 Gcm

android - 如何从图库中选择图像并上传到服务器(parse.com)?

android - 改造 404 未找到 Web api

ios - cordova cli 命令在 ios 上失败 : ENOENT cordova-config. json.SOME_NUMBER

android - 选择大于 3mb 的照片时,cordova 应用程序崩溃

javascript - 转到 Web Essentials 中的定义

java - 如何在 Anchor 上一次只显示一个 AR 对象?

javascript - 键盘的大写锁定键如何锁定文本框的第一个字母?

javascript - jQuery Weekcalendar setDaysToShow 函数