该应用程序使用PhoneGap开发。我正在使用https://github.com/marknutter/GCM-Cordova的推送通知功能。
我已经实现了整个功能,并且直到昨天一切正常。但是,当我昨天检查应用程序时,推送通知在应用程序未运行时无法正常工作。所有通知都会在我的设备上接收,点击消息可以打开应用程序,但是JavaScript部分不会接收到消息通知处理的控件。
文件GCMIntentService.java中的代码:
我已经实现了整个功能,并且直到昨天一切正常。但是,当我昨天检查应用程序时,推送通知在应用程序未运行时无法正常工作。所有通知都会在我的设备上接收,点击消息可以打开应用程序,但是JavaScript部分不会接收到消息通知处理的控件。
文件GCMIntentService.java中的代码:
JSONObject json;
json = new JSONObject().put("event", "message");
json.put("message", extras.getString("message"));
json.put("link", extras.getString("link"));
Log.v(ME + ":onMessage ", json.toString());
GCMPlugin.sendJavascript( json );
// Send the MESSAGE to the Javascript application
当收到消息时,此代码将起作用。但此时,应用程序并未运行。
当我点击通知消息时,应用程序像往常一样打开,但没有注册消息事件;因此无法在JavaScript中获得控件以处理推送通知。
CORDOVA_GCM_script.js
的代码可以在以下位置找到:
https://github.com/marknutter/GCM-Cordova/blob/master/assets/www/CORDOVA_GCM_script.js
注意:当应用程序运行时,它可以正常工作。
编辑: 通知有时会运行。JavaScript 随机获取消息事件。
编辑2:
我确实知道问题所在。
从 Java 文件中,它在通过单击推送通知消息打开应用程序时触发 JavaScript 代码。但是此时 WebView 尚未加载,因此无法执行脚本(这是一个事件触发器)。如果是这种情况,则使用该插件的每个人都会遇到相同的问题。是否有任何解决方法或修复方法?
我做错了什么吗?