当用户在使用Firebase FCM调配打开的iOS设备设置中关闭通知时,如何实现应用行为?

时间:2016-10-03 04:10:50

标签: ios firebase push firebase-cloud-messaging swizzling

如果我在iOS中启用FCM调配,我发现即使用户关闭了我的应用的设备通知设置(可能保存在应用数据中),FCM令牌仍然存在。

在应用程序内部管理此设置似乎不合逻辑,因为FCM会为我处理该部分。

我有两个问题:

  1. 我是否需要在应用内创建通知设置开关,以便用户可以开启或关闭通知?
  2. 如果需要执行#1,如何手动调用FCM注册? 我知道这个api [FIRApp configure]会自动完成所有操作。

1 个答案:

答案 0 :(得分:1)

我认为以下指示可以帮助您回答这个问题。

  1. 通常(无论您使用哪种SDK),生成和维护deviceToken都会与权限提示和给出的提示响应完全分离。有一些用例如静默推送,可用于将推送发送到设备,甚至不用询问用户的权限(好吧,这些推送调用你的应用程序进行数据刷新,但无法在UI上显示任何内容)

  2. 即使我们提示用户获取权限,拒绝权限也不会使已生成的令牌无效。在这种情况下发送的基于UI的推送(警报,徽章,声音)仍将落在设备上,但iOS在检查用户的权限后不会呈现这些通知。

  3. 基于以上数据点,回答你的问题,

      

    我是否需要在应用内创建通知设置开关,以便用户可以开启或关闭通知?

    是的,拥有它当然是一个好主意,但请注意,在初始权限提示后,同一个对话框不会再次显示,因此最好将用户重定向到您可以重新启用应用程序的设置通知权限,请参阅this thread实施相同的内容。

      

    如果需要执行#1,如何手动调用FCM注册?我知道这个api [FIRApp配置]会自动完成所有工作。

    我没有直接使用Firebase的经验,但是,大多数情况下您不需要向Firebase说明任何内容,因为它已经有一个令牌,它可以随时向该设备发送推送,下一个用户修改设置后的推送将根据用户的最新喜好自动显示。