【问题标题】:Can notification actions be handled while the device is locked?设备锁定时是否可以处理通知操作?
【发布时间】:2019-03-09 05:59:15
【问题描述】:

我使用通知已经有一段时间了,我可以发誓 userNotificationCenter(_:didReceive:withCompletionHandler:) 过去只有在通过通知打开应用程序时才会被处理。

但是,在查看 actionable notifications 时,我发现了这个:

当用户选择一个动作时,系统在后台启动您的应用程序并通知共享的UNUserNotificationCenter 对象,后者通知其委托。使用您的委托对象的 userNotificationCenter(_:didReceive:withCompletionHandler:) 方法来识别选定的操作并提供适当的响应。

这是否意味着看似通用的didReceive 委托方法现在即使在设备锁定时也可以工作?

或者必须始终打开应用程序以实际执行任何有意义的操作以响应通知操作(写入本地数据库、发送 HTTPS 请求等)?

【问题讨论】:

    标签: ios apple-push-notifications unusernotificationcenter actionable-notification


    【解决方案1】:

    是的,即使设备被锁定,委托也可以工作。只有当用户选择一个动作时,应用才会被唤醒。另外,我不确定在调用完成块之前您将获得多少时间。

    重要

    如果您对操作的响应涉及访问磁盘上的文件, 考虑不同的方法。用户可以响应操作,而 设备被锁定,这将使文件使用完整的加密 您的应用无法使用该选项。如果发生这种情况,您可能需要保存 临时更改并将它们集成到您的应用程序的数据结构中 稍后。

    【讨论】:

    • 当我看到那张纸条时,我感到很困惑。如果你不能写入磁盘,你能做什么?在后台处理通知操作时,是否有某个功能列表实际上可用?
    【解决方案2】:

    从此委托方法:userNotificationCenter(_:didReceive:withCompletionHandler:) 通知在您的设备被锁定时有效,但如果您想执行任何操作。

    例如:假设您想通过通知在应用程序中接听任何电话,那么您还必须设置其他内容。 您必须在您的应用程序中设置 PushKit 框架。如图所示:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多