【问题标题】:Send iOS push notifications from two apps, but only have one get delivered if user has both apps从两个应用程序发送 iOS 推送通知,但如果用户同时拥有两个应用程序,则只会发送一个
【发布时间】:2014-05-15 19:33:35
【问题描述】:

如果用户安装了我的两个 iOS 应用程序(例如,免费版和专业版),并且我想通过推送通知向所有安装了这两个应用程序的用户发布通知,有没有办法如果用户同时安装了两个应用程序,是否阻止向用户发送两个通知?

在 iOS6 及更低版本中,应用程序之间的推送通知令牌似乎相同,因此可以使用唯一标识符来确保只向某人发送一个通知。但是,从 iOS7 开始,这似乎已更改,因此推送令牌对于每个应用程序都是唯一的。

此外,我没有任何其他用户的唯一标识符(例如他们的电子邮件)。

这个问题的答案很可能是“不”。但如果是这种情况,您可以引用来支持您的结论的任何参考资料都会有所帮助。

【问题讨论】:

  • 没有。参考资料:“从 iOS7 开始,这似乎发生了变化,因此推送令牌在每个应用程序中都是唯一的。”和“我没有任何其他用户的唯一标识符”。无论如何,拥有一个唯一的 id 也无济于事——如果用户安装了应用程序 A 和应用程序 B,你会不会只将推送发送给其中一个?哪一个,如果他们都安装了然后又卸载了一个,然后你将它发送给卸载的那个,那么用户根本不会得到任何推送。
  • @MartinH 在您的示例中,如果我们有一个唯一标识符,我们会将其发送到该用户的一个应用程序(可能是最近使用的一个)。然后我们会轮询 APNS 反馈服务,如果消息被拒绝,那么我们会使用其他应用再次将其发送给那个人。
  • 当应用程序发送推送令牌时,它们包含一个有效负载,说明它是来自免费版还是专业版。然后您的数据库将能够看到两个应用程序已使用相同的令牌注册。
  • @MartinH 每个应用程序的令牌都不同。据我所知,没有办法知道这两个应用程序是同一个人。
  • Doh,我读错了“但是,从 iOS7 开始,这似乎已更改,因此每个应用程序的推送令牌都是唯一的。”。然后我认为没有什么可以做的,什么都没有想到。

标签: ios push-notification apple-push-notifications push


【解决方案1】:

事实证明这是可能的。

iOS 有一个 iosIdentifierForVendor 属性,该属性返回与应用程序供应商相关的用户的唯一标识符。这可用于确定用户是否安装了多个您的应用,从而仅从一个应用向他们发送通知。

【讨论】:

    【解决方案2】:

    远程通知令牌应该是每个应用程序的标识符,请确保您的免费和产品使用不同的 App ID,它们将注册不同的令牌。

    【讨论】:

      猜你喜欢
      • 2012-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-16
      • 2019-09-11
      相关资源
      最近更新 更多