我有一个应用程序,它使用(即将停止) 二进制API用于推送通知。
是否可以将二进制API与多主题证书一起使用(例如,用于VoIP和常规推送通知)?如果是,如何指定“主题”?(在新的HTTP/2API中,这是使用apns-topichttp报头)。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在阿里云平台上,如果您正在使用的是Apple Push Notification Service (APNS)进行推送通知,并且涉及到从二进制API迁移到HTTP/2 API的过程,确实存在一些差异和注意事项。对于您的问题,虽然直接关于二进制API与多主题证书的使用,但请注意,随着苹果官方推荐并最终仅支持HTTP/2协议,重点应转向如何在新的HTTP/2 API中实现相同或类似的功能。
在旧的二进制接口中,多主题(即一个证书支持多个应用程序)的处理方式不如HTTP/2 API那样直接。通常,每个应用程序有其独立的推送证书,因此多主题不是二进制API设计中的一个标准特性。不过,理论上,如果一个证书被配置为支持多个bundle IDs,那么它可能被用于向不同应用发送消息,但这依赖于您如何管理这些消息的路由和生成。
在迁移到HTTP/2 API后,指定“主题”(即目标应用程序的bundle ID)变得非常直接,通过在HTTP请求头中设置apns-topic
来实现。这意味着您可以使用同一个连接和认证凭据(如Token或Key)向不同的应用程序或同一应用程序内的不同通知类型发送消息,只需在每次请求时更改apns-topic
即可。
准备HTTP/2 API所需凭证:首先,确保您已经从Apple Developer Account获取了适用于HTTP/2协议的APNs密钥(对于生产环境和开发环境分别需要),并将其上传至阿里云推送服务(如果适用)或其他您使用的推送服务提供商。
构建HTTP/2请求:在发送推送通知时,构造包含apns-topic
头部的HTTP/2请求。该头部的值应该是您想要推送通知的应用程序的bundle ID。
POST /3/device/{device_token} HTTP/2
apns-topic: com.example.yourapp
Authorization: bearer YOUR_AUTH_KEY_HERE
Content-Type: application/json; charset=utf-8
{
"aps": {
"alert": "Hello from your app!",
"sound": "default"
}
}
管理多主题推送:如果您需要针对不同应用或同一应用内的不同通知类型发送消息,只需根据需要更改apns-topic
值即可。这使得在一个统一的基础设施上管理多种推送场景变得更加灵活高效。
尽管直接在二进制API中实现多主题推送可能不直观或不被推荐,但迁移到HTTP/2 API后,通过利用apns-topic
,您可以轻松地实现对多个应用程序或通知类型的推送。建议您尽快迁移至HTTP/2 API以保持与Apple APNS的最佳兼容性和未来支持。