Phonegap(Cordova)iOS推送通知onNotificationAPN事件在后台触发

时间:2013-10-12 12:51:58

标签: javascript ios cordova phonegap-plugins

我使用带有PushPlugin插件的Phonegap 3.0来实现iOS推送通知服务

使用node-apn包后端服务器,我可以从它接收APN消息。 注册 onNotificationAPN 功能将在后台触发,APP图标也有徽章计数。

但是我无法将event.payload存储到localStorage甚至窗口对象。

所以..如果我想在用户从后台撤销应用程序时获取APN有效负载数据(或者只是单击通知)。我该怎么办?

PS。我在应用程序初始化之前注册恢复事件,然后在应用程序撤销时确认调用。

示例代码:

function onNotificationAPN (event) {
    if ( event.alert )
    {
        navigator.notification.alert(event.alert);
    }

    if ( event.sound )
    {
        var snd = new Media(event.sound);
        snd.play();
    }

    if ( event.badge )
    {
        pushNotification.setApplicationIconBadgeNumber(successHandler, errorHandler, event.badge);
    }

    if ( event.payload )
    {
        localStorage.payload = event.payload   
    }

    // Assign here useless too.
}

document.addEventListener("resume", pushRevoke, false);

function pushRevoke(){
    var payload = localStorage.payload; // undefined
}

1 个答案:

答案 0 :(得分:4)

解决

由于PushPlugin JSON分析程序错误

在ios / PushPlugin.m第171行

[jsonStr appendFormat:@"foreground:'%d',", 0];

应该是

[jsonStr appendFormat:@"foreground:'%d'", 0];

Github Issue