【发布时间】:2015-01-14 15:40:05
【问题描述】:
我刚刚开始了一个为 IOS 提供静默推送通知的项目,以允许应用程序在后台更新。到目前为止我还不清楚的一个基本点是,如果用户完全拒绝推送消息会发生什么?这会拒绝应用程序接收静默推送通知,还是仅导致设备无法以视觉/听觉方式向用户显示消息?
我意识到苹果的规则是,应用程序不仅应该在允许推送的情况下工作,而且我很好奇如何最好地处理这种情况。
【问题讨论】:
标签: ios push-notification
我刚刚开始了一个为 IOS 提供静默推送通知的项目,以允许应用程序在后台更新。到目前为止我还不清楚的一个基本点是,如果用户完全拒绝推送消息会发生什么?这会拒绝应用程序接收静默推送通知,还是仅导致设备无法以视觉/听觉方式向用户显示消息?
我意识到苹果的规则是,应用程序不仅应该在允许推送的情况下工作,而且我很好奇如何最好地处理这种情况。
【问题讨论】:
标签: ios push-notification
编辑: 如 cmets 中所述,静默通知不受用户权限的影响。您唯一需要注意的是通知格式:
发送静默通知需要对通知的有效负载进行特殊配置。如果您的有效负载配置不正确,则通知可能会显示给用户,而不是在后台传送到您的应用程序。在您的有效负载中,确保满足以下条件:
- 负载的
aps字典必须包含content-available键,其值为1。- 负载的
aps字典必须不包含alert、sound或badge键。
这是我的旧答案,适用于 iOS 8 之前的版本(仍然适用于可见通知,这不是这里的主题): 如果用户拒绝远程通知,则此门将关闭。从技术上讲,您可以考虑自己的后台服务,但这需要在后台不断运行,例如通过持续使用 GPS(坏主意)。
更好的选择是说服用户在正确的时间接受和询问。这篇文章应该给你一个大致的方向思考什么:http://techcrunch.com/2014/04/04/the-right-way-to-ask-users-for-ios-permissions/
【讨论】:
接受的答案不正确。
无论用户是否授予推送通知权限,都会发送静默通知。
在 iOS、tvOS 和 watchOS 中,应用必须获得授权才能显示警报、播放声音或标记应用图标以响应传入的通知。请求授权将这些交互的控制权交到用户手中,用户可以批准或拒绝您的请求。用户还可以稍后在系统设置中更改您应用的授权设置。
【讨论】: