未通过 Pushwoosh 在 Windows Universal App (Windows 8.1) 上接收推送通知



我们使用Pushwoosh服务向我们的应用程序发送推送通知,并且我们遵循了Windows 8(javascript)的教程。在台式计算机上运行时,我们能够在我们的应用程序中运行推送通知。这是一个Windows 8.1通用应用程序,所以我们为我们的Windows Phone 8.1版本运行相同的代码,该版本也是javascript。

在Windows Phone设备中,推送消息没有被接收,并且经常在"service.subscribeToPushService();"方法中阻塞。卸载该应用程序并首次运行它似乎有效,但之后它只是在该方法中不断阻止。

作为一个通用的应用程序,手机和桌面版本在我们应该注意的推送通知方面有什么区别吗?

您确定使用的是最新的Pushwoosh Windows 8 SDK吗?如果您使用的是适用于 Windows/Windows Phone 8.1 的通用应用程序,则需要在这两个平台上使用 Pushwoosh Windows 8 (WNS) Pushwoosh SDK。它位于这里:
https://github.com/Pushwoosh/pushwoosh-windows-8-sdk

所有平台的代码应该完全相同:https://github.com/Pushwoosh/pushwoosh-sdk-samples/blob/master/Native/Win8/Win8JS/js/default.js

var service = new PushSDK.NotificationService.getCurrent("YOUR_PUSHWOOSH_APP_ID");
service.ononpushaccepted = function (args) {
    //code to handle push notification
    //display push notification payload for test only
    var md = new Windows.UI.Popups.MessageDialog(args.toString());
    md.showAsync()
}
service.ononpushtokenreceived = function (pushToken) {
    //code to handle push token
}
service.ononpushtokenfailed = function (error) {
    //code to handle push subscription failure
}
service.subscribeToPushService();

另外不要忘记处理启动推送通知:

app.onactivated = function (args) {
    if (args.detail.kind === activation.ActivationKind.launch) {
        showProgress();
        if (args.detail.previousExecutionState !== activation.ApplicationExecutionState.terminated)
        {
            // TODO: This application has been newly launched. Initialize
            // your application here.
            //Handle start push
            PushSDK.NotificationService.handleStartPush(args.detail.arguments);

这里也有相同的信息:
https://community.pushwoosh.com/questions/1801/push-notification-to-windows-81-universal-apps?page=1&focusedAnswerId=1871#1871

您可以在此处阅读有关推送通知的主题,其中有一节讨论DOS Attacks保护。可能与连接重新打开频率有关。

提示:请勿为要发送的每个推送通知打开和关闭与 APNs 的连接。快速打开和关闭与 APNs 的连接将被视为拒绝服务 (DOS) 攻击,并可能阻止您的提供商向您的应用程序发送推送通知。

相关内容

  • 没有找到相关文章

最新更新