【发布时间】:2019-10-25 13:01:24
【问题描述】:
我们能够向 Apple 12.x iOS 设备发送推送通知。但它不会向 iOS 13 设备发送通知。我们尝试了将“apns-push-type”值添加到通知标题中的“alert”的建议。但它根本不起作用。微软似乎不知道如何解决它。他们就像那样告诉了变化。在过去的 1 周里,我们尝试了很多方法来解决它。但没有成功。
【问题讨论】:
标签: azure azure-notificationhub
我们能够向 Apple 12.x iOS 设备发送推送通知。但它不会向 iOS 13 设备发送通知。我们尝试了将“apns-push-type”值添加到通知标题中的“alert”的建议。但它根本不起作用。微软似乎不知道如何解决它。他们就像那样告诉了变化。在过去的 1 周里,我们尝试了很多方法来解决它。但没有成功。
【问题讨论】:
标签: azure azure-notificationhub
Apple 最近以影响 Azure 通知中心客户的方式更新了他们的公共推送服务。 Learn more 关于这些更改对 Azure 通知中心的影响。具体来说,Apple 现在要求开发人员通过 APNS API 中的新“apns-push-type”标头将通知识别为警报或后台通知。
Azure Notification Hubs updates for iOS 13 - 我知道您提到“我们已经尝试了很多方法来解决它”,如果您还没有尝试过这些,请尝试让我们知道以进行进一步调查。
According to Apple’s documentation: "此标头的值必须准确反映您的通知负载的内容。如果不匹配,或者在所需系统上缺少标头,APN 可能会返回错误,延迟发送通知,或者干脆放弃。”
开发人员现在必须在通过 Azure 通知中心发送通知的应用程序中设置此标头。由于技术限制,客户必须对包含此属性的请求的 APNS 凭证使用基于令牌的身份验证。如果您对 APNS 凭据使用基于证书的身份验证,则必须切换到使用基于令牌的身份验证。
为了在此过渡期间为您提供帮助,当 Azure 通知中心检测到未设置 apns-push-type 的通知时,服务将根据通知请求推断推送类型并自动设置值。请记住,您必须将 Azure 通知中心配置为使用基于令牌的身份验证来设置所需的标头;请参阅Token-based (HTTP/2) Authentication for APNS 了解更多信息。
另一个小的更改,但需要更改发送通知的后端应用程序,要求后台通知的 apns-priority 标头必须设置为 5。许多应用程序将 apns-priority 标头设置为 10 (指示立即发送),或者不设置它并获取默认值,它也是 10。这不再允许用于后台通知,因此您必须为每个请求设置该值,因为如果此值是 Apple 将不会发送后台通知失踪。
多年来,iOS 开发人员使用发送到推送令牌委托的 deviceToken 数据的描述属性来提取后端应用程序用来向设备发送通知的推送令牌。在 Xcode 11 中,该描述属性更改为不同的格式。用于此的现有代码开发人员现在已损坏。我们已更新 Azure 通知中心 SDK 以适应此更改,请将您的应用程序使用的 SDK 更新至 Azure Notification Hubs iOS SDK 的 2.0.4 或更高版本。
来源 -Azure 更新适用于 iOS 13 的 Azure 通知中心更新(发布于 2019 年 10 月 21 日)。为了更清楚起见,复制了这里的内容。
【讨论】: