如何从 iOS 应用程序确定正在使用哪个苹果推送通知服务器 (APNS)

Posted

技术标签:

【中文标题】如何从 iOS 应用程序确定正在使用哪个苹果推送通知服务器 (APNS)【英文标题】:How would one determine which apple push notification server (APNS) is in use, from iOS application 【发布时间】:2012-07-18 20:11:07 【问题描述】:

我希望在我的服务器注册消息中包含一个关于正在使用哪个 APNS 服务器的标志。沙箱或生产。我希望这样做,以便我的代码可以简单地从设备表中查找设备令牌和通知服务器,以便继续开发可以与实时设备共存。

该应用程序在开发过程中会正确注册,将我们系统中的客户 ID 链接到手机中的令牌字符串。

但是,这不允许我从我们的服务器以编程方式确定要使用哪个推送通知服务器。

【问题讨论】:

好吧,猜猜您正在获取注册令牌并通过 NSURLRequest 将其发送到您的服务器。只需将另一个参数添加到指定应用程序是否正在开发中的 url。然后,您的服务器将知道该怎么做。我希望我能理解这个问题。 阅读大量内容并查看@George 的评论(我认为我同意)之后,您似乎希望您的应用程序代码(在设备中)告诉您的 服务器是使用 Apple 的 APNS 沙箱还是生产服务器。在这种情况下,我会按照乔治的建议去做(并忽略我的回答——尽管我的回答确实给了你反馈,即你得到的就是你所要求的) 【参考方案1】:

我不确定我的问题是否正确,但根据 Apple 的文档 Local and Push Notification Programming Guide: The Notification Payload

提供者可以在 Apple 保留的范围之外指定自定义有效负载值 aps 命名空间。

因此,您需要做的就是制作您的自定义有效负载,以指示通知是从哪个服务器推送的,并在它到达应用程序时读取它。

【讨论】:

以上是关于如何从 iOS 应用程序确定正在使用哪个苹果推送通知服务器 (APNS)的主要内容,如果未能解决你的问题,请参考以下文章

苹果iOS推送通知的PHP脚本错误

如何向我的苹果IOS用户发送弹出警报?

如何在Xcode中设置iOS系统的最低版本

无法从使用推送从苹果开发者帐户创建的 aps_production 创建 p12

Xamarin.iOS如何在注册到后端以获取推送通知后获取安装ID

苹果推送通知令牌是不是会随着 iOS 更新而改变?