我使用带有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
}
答案 0 :(得分:4)
由于PushPlugin JSON分析程序错误
在ios / PushPlugin.m第171行
[jsonStr appendFormat:@"foreground:'%d',", 0];
应该是
[jsonStr appendFormat:@"foreground:'%d'", 0];