[英]Phonegap-plugin-push's on.('notification') doesn't fire
[英]phonegap-plugin-push not triggering callback function for new notification when app is in foreground
我正在使用Phonegap(cli v5.3.6)编写用于Android的移动应用程序,并且正在使用phonegap-plugin-push v1.3在GCM中注册设备并在到达设备时处理通知。
// define the push settings
var push = PushNotification.init({
"android": {
"senderID": "*********"
},
"ios": {},
"windows": {}
});
push.on("notification", function(data) {
console.log("notification received while in app");
console.log(JSON.stringify(data));
addMessageToLocalDB(data, false);
});
push.on("error", function(e) {
console.log(JSON.stringify(e));
});
当应用关闭或在后台运行时,效果很好。 应用程序在前台时会发生我的问题。 我正在查看logcat并看到已收到通知,但没有看到日志显示回调函数已被触发(很显然,我期望看到的结果没有发生)。 我也没有看到错误事件触发的回调函数,因此它可能并没有真正失败。
我想念什么吗? 我在网上找不到有关此问题的任何内容,也无法真正阅读Java来了解该插件的行为方式...
我的应用程序由index.html(应用程序启动时将加载的页面)和许多其他html文件(每个文件充当应用程序的单独页面)组成。我是否应该在每个页面上放置事件处理程序?我做了什么
谢谢,优西
在调用PushNotification.init
之前,您可能需要等待deviceready
事件。 这可能比使用setTimeout
更可靠(更快速)。
我可能没有收到您的问题,但是如果您想在应用程序处于前台时显示通知。forceshow参数的默认值为false,您说的没错
“ android”:{“ senderID”:“ *********”,“ forceShow”:“ true”},
我最终注意到,当我第一次加载页面时,有时有时未定义PushNotification对象,但是如果我等待足够的时间(100毫秒),则会对其进行定义。 我最终要做的是每100毫秒运行一次间隔,检查是否已定义PushNotification对象,如果已定义,则运行我的init + event侦听器代码并清除间隔。 在相当长的一段时间内,这似乎运作良好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.