我正在使用Cordova的Android应用程序,我实施了PushPlugin。加载初始index.html文件时,一切正常,但只要加载另一个html页面,onNotification函数就不会被调用。
从LogCat我可以看到Javascript正在正确发送,但它似乎从未被收到过。如果我继续第三页,它将再次工作,但第四页不会。这很奇怪,因为正在调用成功函数,但onNotification不是。
这是我的代码:
document.addEventListener("deviceready", onDeviceReady, false);
var pushNotification;
function onDeviceReady() {
pushNotification = window.plugins.pushNotification;
setupNotifications();
}
function setupNotifications() {
if ( device.platform == 'android' || device.platform == 'Android' || device.platform == "amazon-fireos" ){
pushNotification.register(
successHandler,
errorHandler,
{
"senderID":"527612045331",
"ecb":"onNotification"
});
} else {
pushNotification.register(
tokenHandler,
errorHandler,
{
"badge":"true",
"sound":"true",
"alert":"true",
"ecb":"onNotificationAPN"
});
}
}
// Android and Amazon Fire OS
function onNotification(e) {
// NOT REACHING HERE ON SECOND PAGES
switch( e.event )
{
case 'registered':
registerGCM(e.regid);
break;
case 'message':
var notificationType = e.payload.data.type;
break;
case 'error':
return;
default:
return;
}
}
感谢任何帮助。
答案 0 :(得分:1)
onNotification必须在窗口中具有范围。
window.onNotification = function(){
}
答案 1 :(得分:0)
我遇到了同样的问题,我在gcm服务器密钥中添加了0.0.0.0/0作为IP地址,这有助于: