【问题标题】:ios silent push notification when user denies Push Authorization用户拒绝推送授权时的ios静默推送通知
【发布时间】:2015-01-14 15:40:05
【问题描述】:

我刚刚开始了一个为 IOS 提供静默推送通知的项目,以允许应用程序在后台更新。到目前为止我还不清楚的一个基本点是,如果用户完全拒绝推送消息会发生什么?这会拒绝应用程序接收静默推送通知,还是仅导致设备无法以视觉/听觉方式向用户显示消息?

我意识到苹果的规则是,应用程序不仅应该在允许推送的情况下工作,而且我很好奇如何最好地处理这种情况。

【问题讨论】:

    标签: ios push-notification


    【解决方案1】:

    编辑: 如 cmets 中所述,静默通知不受用户权限的影响。您唯一需要注意的是通知格式:

    发送静默通知需要对通知的有效负载进行特殊配置。如果您的有效负载配置不正确,则通知可能会显示给用户,而不是在后台传送到您的应用程序。在您的有效负载中,确保满足以下条件:

    • 负载的aps 字典必须包含content-available 键,其值为1
    • 负载的aps 字典必须包含alertsoundbadge 键。

    Source Apple


    这是我的旧答案,适用于 iOS 8 之前的版本(仍然适用于可见通知,这不是这里的主题): 如果用户拒绝远程通知,则此门将关闭。从技术上讲,您可以考虑自己的后台服务,但这需要在后台不断运行,例如通过持续使用 GPS(坏主意)。

    更好的选择是说服用户在正确的时间接受和询问。这篇文章应该给你一个大致的方向思考什么:http://techcrunch.com/2014/04/04/the-right-way-to-ask-users-for-ios-permissions/

    【讨论】:

    • 这个答案不正确。无论用户的权限设置如何,都会发送静默通知。
    • 如果用户同时禁用“后台应用刷新”并禁用通知,则不会发送它们。见here。然后他们只会在前台交付。您只是正确的是,令牌注册不需要与徽章、警报、声音相同的用户权限。然而,为了让应用能够定期从后台获取,您确实需要启用其中任何一个权限。
    【解决方案2】:

    接受的答案不正确。

    无论用户是否授予推送通知权限,都会发送静默通知。

    在 iOS、tvOS 和 watchOS 中,应用必须获得授权才能显示警报、播放声音或标记应用图标以响应传入的通知。请求授权将这些交互的控制权交到用户手中,用户可以批准或拒绝您的请求。用户还可以稍后在系统设置中更改您应用的授权设置。

    来源:Apple's Developer Documentation

    【讨论】:

    • 如果用户同时禁用“后台应用刷新”并禁用通知,则不会发送它们。见here。然后他们只会在前台交付。您只是正确的是,令牌注册不需要与徽章、警报、声音相同的用户权限。然而,为了让应用能够定期从后台获取,您确实需要启用其中任何一个权限。
    猜你喜欢
    • 1970-01-01
    • 2018-12-05
    • 1970-01-01
    • 2021-06-25
    • 2018-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多