在我的PhoneGap 3 iOS应用程序中使用PushPlugin时,大多数推送通知都有效,但是我正在使用自定义有效负载将通知发送到APNS。看起来是这样的:
$body = array(
'customID' => $customID
);
$body['aps'] = array(
'alert' => $message,
'sound' => 'default'
);
根据我的阅读,应该由APNS(scroll down to the bottom)支持,但是PushPlugin's documentation不能很好地解决iOS问题。我想要的是在通过点击通知打开我的应用程序时,能够将
customID
作为JS变量访问。当该应用程序只是单独启动时,我不希望发生任何特殊情况。此外,用户点击哪个通知也很重要-customID
是唯一且重要的。我真的很困惑,因为找不到任何人在谈论使用PushPlugin处理这些自定义APNS负载。 最佳答案
我从未使用过PushPlugin,但查看他们的代码,我可以为您指出正确的方向。
他们在AppDelegate中将包含通知有效内容的字典传递给PushPlugin对象的实例,并调用该实例的notificationReceived
方法。notificationReceived
的PushPlugin
从该字典构造一个JSON字符串,并将其传递给处理该通知的JS回调方法。
这是PushPlugin文档中的回调方法的示例:
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);
}
}
我不太熟练使用JavaScript,但是
event
应该包含JSON字符串,其中包含通知有效负载的所有数据,包括您的自定义属性。您应该可以在那里访问它。关于ios - PhoneGap PushPlugin-访问iOS APNS有效载荷?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21917624/