该应用程序在PhoneGap中.我正在使用推送通知功能https://github.com/marknutter/GCM-Cordova
我实现了整个功能,它工作正常,直到昨天.当我最后一天检查应用程序时,当应用程序未运行时,推送通知无效.所有通知都在我的设备上接收,点击该消息即可打开该应用.
但是控件没有在消息通知处理的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
Run Code Online (Sandbox Code Playgroud)
收到消息后,此代码将起作用.但那时,App还没有运行.
当我点击通知消息时,应用程序照常打开,而不是注册消息事件; 从而无法获得JavaScript中的控件来处理推送通知.
CORDOVA_GCM_script.js的代码位于:
https://github.com/marknutter/GCM-Cordova/blob/master/assets/www/CORDOVA_GCM_script.js
注意:当应用程序运行时,它可以正常工作.
编辑: 通知有时会运行.JavaScript随机获取消息事件.
编辑2:
我当然知道这个问题.
从java文件中,它通过单击推送通知消息打开应用程序时触发javascript代码.但那时,WebView没有加载,因此无法执行脚本(这是一个事件触发器).这是条件,每个使用插件的人都会遇到同样的情况.是否有任何解决方法或任何修复方法?
我做错了吗?
几个星期前,我们开始注意到谷歌客户端API或谷歌驱动JS api的奇怪错误(不确定哪个,URL参考在下面),他们在过去几天的频率增加
TypeError: Cannot read property 'sl' of undefined
Run Code Online (Sandbox Code Playgroud)
这似乎主要影响Windows Chrome - 我们的错误日志中的用户代理的典型示例是
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31)
Run Code Online (Sandbox Code Playgroud)
从我所看到的,唯一的.sl行是这样的:
if(!this.b.headers.Authorization){var f=(0,_.Hx)(_.p,_.p);f&&f[_.Ak.pl.sl]&&(c=f[_.Ak.pl.sl].split(/\w+/))}
Run Code Online (Sandbox Code Playgroud)
这来自
https://apis.google.com/_/scs/apps-static/_/js/k=oz.gapi.en.uSTvEdNXb7o.O/m=client/rt=j/sv=1/d=1/ed=1/am=UQ/rs=AItRSTOm1KS5pZVEepZkn9qQJeuQZC_Qjw/cb=gapi.loaded_0
Run Code Online (Sandbox Code Playgroud)
我知道这是故意隐晦的,所以建议如何解决这个问题超出了我的意见,但如果有人在调查频率似乎在增加,我会很感激.也许是围绕_Ak.pl的一个守卫,在执行.sl之前检查它是否为空?
google-api google-api-client google-drive-api google-api-js-client