【问题标题】:Difference between using Certificate based APN service VS Device Token APN service使用基于证书的 APN 服务 VS 设备令牌 APN 服务的区别
【发布时间】: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


【解决方案1】:

有几点需要了解:

  1. 贵公司/团队的证书
  2. 您的应用程序/捆绑包的配置文件
  3. 您的客户/用户的设备令牌
  4. 您的后端服务器

当您将应用上传到 App Store 时,1 和 2 会捆绑在您的应用中。

当您询问用户发送 PN 的权限时,您会得到 3。 [为此 2 应该具有远程推送通知功能启用]

您将 1 和 3 给 4。[1 用于与 APNS 服务器建立连接,3 用于将 PN 发送到特定的 iOS 设备]

所以,回答你的问题:你需要 A 和 B。

【讨论】:

    【解决方案2】:

    为了更好地理解 APNS 的工作原理,我附上了一个参考图,有助于阐明您的概念。

    ** 如果我使用方法 A,如果我没有设备令牌,我如何定位某些设备来发送通知?**

    • 没有设备令牌,您将无法定位 iPhone 或 您要发送推送通知的设备

    如果我的用户“不允许”推送通知 -> 那么您将无法生成 PUSH DEVICE TOKEN 因此在这种情况下您将无法收到任何推送通知.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-20
      • 2014-03-20
      • 2011-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-18
      • 1970-01-01
      相关资源
      最近更新 更多