通知服务扩展创建本地通知

时间:2019-03-07 20:34:16

标签: ios apple-push-notifications unusernotificationcenter usernotifications

我们想向我们的应用程序添加功能,以便提醒用户选择阅读可能错过的重要通知。这是我们希望其工作的方式:

  1. 收到推送通知时,将触发Notification Service Extension。
  2. 该扩展程序检查它是否应该执行任何工作(我们不想提醒用户当前是否在应用程序中。)
  3. 如果启用了提醒,则扩展程序尝试以1分钟的间隔生成3条本地通知,以提醒用户他们错过了重要信息。
  4. 如果用户打开该应用程序,则将清除所有现有的本地通知。
  5. 如果在用户打开应用之前收到另一个通知,则将清除所有现有的本地通知并创建新的通知。

这很好,除了步骤3。在我开始工作之前,我会从服务扩展中检查通知授权,并一直返回.authorized。但是,当我调用UNUserNotificationCenter.current.add(_:withCompletionHandler:)时,完成处理程序将调用UNError:Notifications are not allowed for this application

奇怪的是,它有时能工作。例如,我将通过第二个通知并获得提醒,但是第一个和第三个失败。但是,这种情况极为罕见(调度本地通知的成功率<5%)。

有人对此有任何见识吗?

0 个答案:

没有答案