【问题标题】:PushPlugin is not working after upgrading to cordova 3.1.0升级到 cordova 3.1.0 后 PushPlugin 无法正常工作
【发布时间】:2013-11-05 23:23:59
【问题描述】:

Cordova 升级到 3.1.0 后,无法调用 onNotificationGCM 函数 event = register。所以我可以收到注册手机的推送通知,但无法注册新手机。

检查 ATD 的控制台,我得到了这个:

W/PluginManager(31200): THREAD WARNING: exec() call to PushPlugin.
register blocked the main thread for 30ms. Plugin should use
CordovaInterface.getThreadPool().

有人有同样的问题,可以给点建议吗?

【问题讨论】:

    标签: java javascript android cordova push-notification


    【解决方案1】:

    以某种方式找到 gWebView.sendJavascript(_d);未在 PushPlugin.java 中的 sendJavascript 函数中运行。可能是 PushPlugin 错误或 Cordova 错误。

        /*
         * Sends a json object to the client as parameter to a method which is defined in gECB.
         */
        public static void sendJavascript(JSONObject _json) {
                String _d = "javascript:" + gECB + "(" + _json.toString() + ")";
                Log.v(TAG, "sendJavascript: " + _d);
    
                if (gECB != null && gWebView != null) {
                        gWebView.sendJavascript(_d); 
                }
        }
    

    gWebView.sendJavascript(_d);(第105行)更改为gWebView.loadUrl(_d)将解决问题。

    【讨论】:

    • hello wen,它仍然无法在我的项目中工作,因为同样的错误。有什么想法吗?请帮忙..
    • 您是否尝试重建您的项目?你能得到 Log.v(TAG, "sendJavascript:" + _d);控制台中的消息?
    • 错误已删除,但我没有获得注册 ID,因为 ecb 回调未运行
    • 您能告诉我如何使用此插件获取 google 注册 ID 吗?
    • 在 GCMIntentService.java line34 中,你能得到 Log.v(TAG, "onRegistered: " + json.toString());控制台中的消息?如果你能得到这个,那意味着你已经得到了设备 reg_id。尝试使用真机进行测试。
    最近更新 更多