【发布时间】:2019-09-07 22:38:46
【问题描述】:
我对使用基于证书的 APN 服务连接与设备令牌方法之间的区别有点困惑。
我的理解是,在向 iOS 设备发送推送通知时,我的选择是:
A) 我可以在应用程序包中注册 APN 证书,我的提供商可以将其发送到 APN 服务,以验证我是否可以向具有该应用程序包的设备发送通知。
B) 我的提供商可以通过 HTTP 上下载的设备上的应用程序发送一个“设备令牌”,当我将该设备令牌发送到 APN 服务时,它会知道用户已允许我来发送这些通知。
我的问题是:
1) 如果我使用方法 A,如果我没有设备令牌,我如何定位某些设备来发送通知? p>
2) 如果我使用方法 B,如果我的用户“不允许”推送通知,我将在哪里接收设备令牌以发送静默通知?会
func application(_ application: UIApplication,
didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data)
仍然运行并允许我取出 deviceToken,以便我可以通过 HTTP 将其发送给我的提供商?
我采用了一款使用基于证书的推送通知(我认为)的软件,但不确定它如何区分使用任何 deviceToken 向谁发送通知。在我的 iOS 设备上重建并重新下载应用程序后,通知停止工作,因此我认为证书不再与构建相关联。
我也很好奇有人如何在物理设备上调试通知。我在 Mac 上尝试了控制台应用程序,但看到我在代码中放入的任何打印语句都没有运气。
我对 iOS 编程还是很陌生,所以如果我对 APN 服务的理解有任何错误,请纠正我!非常感谢您!
【问题讨论】:
-
如果你想使用静默推送通知,那么启用远程通知后台模式就足以获得设备令牌注册;您无需请求通知许可;如果您想显示推送通知,那么您需要权限,如果用户没有授予权限,那么您没有令牌,但您不需要它。无论如何,您都应该注册它,因为如果用户随后在您的应用设置中更改了推送通知权限,您将在下次启动应用时获得一个令牌
标签: ios swift push-notification apple-push-notifications sails.js