2

我使用带有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
}
4

1 回答 1

4

解决

由于 PushPlugin JSON 解析器错误

在 ios / PushPlugin.m 第 171 行

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

应该

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

Github问题

于 2013-10-12T18:33:33.893 回答