PushPlugin onNotification未在每隔一页上触发 - Cordova,Android

时间:2014-09-10 04:44:44

标签: android cordova plugins push

我正在使用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;
  }
}

感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

onNotification必须在窗口中具有范围。

    window.onNotification = function(){

}

答案 1 :(得分:0)

我遇到了同样的问题,我在gcm服务器密钥中添加了0.0.0.0/0作为IP地址,这有助于:

  1. 在google开发者控制台中打开您的项目;
  2. 转到凭证;
  3. 从api键单击服务器密钥(如果尚未生成,则生成它);
  4. 添加Ip 0.0.0.0/0。