在我的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方法。
notificationReceivedPushPlugin从该字典构造一个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/

10-11 08:18