当前位置: 首页 > 知识库问答 >
问题:

解析不注册推送通知的设备

郎意
2023-03-14

在Parse的推送通知中有一个奇怪的行为。您可以在这里下载一个空白项目和做一些实验https://parse.com/downloads/ios/parse-starter-project/latest

要注册推送通知,我们需要DidFinishLaunchingWithOptions中的这段代码

[application registerForRemoteNotificationTypes:UIRemoteNotificationTypeBadge|
                                                UIRemoteNotificationTypeAlert|
                                                UIRemoteNotificationTypeSound];

然后,在DidRegisterForRemoteNotificationsWithDeviceToken中,我们包括:

[PFPush storeDeviceToken:newDeviceToken];

以下是案例:

案例1。如果你的手机没有一个版本的应用程序,而你运行了代码,它会注册推送通知的设备--一切都运行得很好。

案例2。如果最初不通过从DidFinishLaunchingWithOptions中删除代码来使用代码

[application registerForRemoteNotificationTypes:UIRemoteNotificationTypeBadge|
                                                UIRemoteNotificationTypeAlert|
                                                UIRemoteNotificationTypeSound];

当然,app不会注册设备进行推送通知。然后,插入代码。由于旧的应用程序还在你的手机里,运行它不会注册设备;但是如果你卸载了旧版本的应用程序,并用插入的代码安装了新的应用程序,应用程序就会注册设备。

目前,我们的应用程序处于第二种情况。当用户从商店更新app时,除非他们先移除旧版本,否则app不会注册他们的设备进行推送通知。对于带有推送通知功能的app来说,这并不是一种理想的更新方式。你有没有办法在不先删除旧版本的情况下,更新app注册推送通知呢?

共有1个答案

吕志诚
2023-03-14

使用nsuserdefaults,可以设置标记设备是否注册通知的标志。注册通知后,将标志设置为“是”:

[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"Registered"];

在应用程序did finish Launch with options,选中此选项,并且仅在此为no时注册它们。

现在,对于已经安装了应用程序的用户,他们不一定要重新启动他们的应用程序,因此他们不一定要通过AppDidFinishLaunching...

但您可以尝试在应用程序的其他点注册它们。您是否有一个mainmenu或某个常见的地方,几乎每个用户都可以在某个时候通过它?如果是,插入一些代码,如下所示:

if (![[NSUserDefaults standardUserDefaults] boolForKey:@"Registered"]) {
     // run the code to register and then set the flag to YES
}
 类似资料:
  • 我正在尝试使用parse.com推送通知服务向我的iOS应用添加推送通知,但我遇到了一些问题,我的一些设备没有收到通知。 当前代码 这似乎在某些设备上起作用(在同事的iPhone5上测试过--起作用了,在我老板的iPhone6上测试过--不起作用) 第43行: 警告2: /users/ds/code/rp-ios/rp/appdelegate.swift:44:25:iOS 8.0中不推荐使用“R

  • 我正在尝试使用Azure通知中心向客户端发送推送通知。我读了这篇文章,它使用标签来识别每个用户。 https://azure.microsoft.com/en-us/documentation/articles/notification-hubs-aspnet-backend-windows-dotnet-notify-users/ 它可以完成这项工作,但标记的数量有限。我正在考虑存储和使用中心返

  • 当我需要使用Firebase向特定设备发送通知时,这就是JSON结构。那么,我应该如何修改它以向所有设备或两个选定设备发送相同的通知呢? android中使用Firebase向所有设备发送推送通知的JSON结构是什么?

  • 我试图让我的应用程序在Xcode 8.0下运行,但遇到了一个错误。我知道这段代码在以前的swift版本中运行良好,但我假设新版本中的代码有所更改。以下是我试图运行的代码: 我得到的错误是“参数标签”(forTypes:,categories:)“不匹配任何可用的重载” 有没有其他命令可以让我试着让它工作?

  • 我无法通过parse.com正确设置推送通知。我相信我的推送是因为它们通过解析显示在我的推送日志中。但是,无论我的推送发送到哪里(app或仪表盘),“发送的推送”总是显示0。我知道这可能是一个复杂的任务,所以任何帮助将是非常感谢!下面是我的代码: AppDelegate.m InboxTableViewController.m ViewDidLoad

  • 首先,我想声明我一直在研究推送通知和web通知之间的关系,但我有点困惑。 我从这里读到PWAs的推送通知在Safari上的iOS(iPhone)不起作用:从PWA向iOS发送推送通知 然而,如果iPhone用户使用的是Chrome,这是否意味着它们可以工作呢?或者推送通知在任何浏览器上对iPhone中的PWAs都不起作用? 这就把我带到了web通知。web通知在后台对PWAs起作用吗?我的问题是w