【问题标题】:Cordova plugin - Javascript receive message from native codeCordova 插件 - Javascript 从本机代码接收消息
【发布时间】:2014-08-08 04:51:08
【问题描述】:

作为以下文档: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原生代码只返回一个布尔结果。如何让它返回一个字符串(或 JSON)并让 cordova.exec() 接收它?

p/s:我想使用 Java 原生代码从电子邮件中读取 JSON 字符串(项目列表)。并且它会返回到 Javascript 代码来渲染到 Sencha Touch 中的一个列表

【问题讨论】:

    标签: android cordova plugins sencha-touch-2


    【解决方案1】:

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

    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字符串参数的内容。

    【讨论】:

    • 哦。谢谢。这是我的大错。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-05
    相关资源
    最近更新 更多