我刚刚启动了一个带有IOS静默推送通知的项目,允许应用在后台更新。到目前为止我不清楚的一个基本点是,如果用户完全拒绝推送消息,会发生什么?这会拒绝应用程序收到静默推送通知,还是仅导致设备不能以可视方式/可听方式向用户显示消息?
我意识到苹果有规则,应用程序不仅应该在允许推送时起作用,而且我很好奇如何最好地处理这种情况。
答案 0 :(得分:2)
修改强> 如评论中所述,静默通知不受用户权限的影响。您唯一需要注意的是通知格式:
发送静默通知需要特殊配置通知的有效负载。如果未正确配置有效负载,则通知可能会显示给用户,而不是在后台传递给您的应用。在您的有效负载中,请确保满足以下条件:
- 有效负载的
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/
答案 1 :(得分:0)
接受的答案不正确。
无论用户是否已授予推送通知权限,都会发送无提示通知。
在iOS,tvOS和watchOS中,应用必须具有显示警报,播放声音或标记应用图标以响应传入通知的授权。请求授权将这些交互的控制权交给用户,他们可以授予或拒绝您的请求。用户还可以稍后在系统设置中更改应用的授权设置。