我已经使用通知已有一段时间了,我发誓userNotificationCenter(_:didReceive:withCompletionHandler:)
仅在通过通知打开应用程序时才被处理。
但是,在查看actionable notifications时,我发现了这一点:
当用户选择一个操作时,系统在后台启动您的应用,并通知共享的
UNUserNotificationCenter
对象,该对象会通知其委托。使用您的委托对象的userNotificationCenter(_:didReceive:withCompletionHandler:)
方法来标识选定的操作并提供适当的响应。
这是否意味着即使设备处于锁定状态,看似通用的didReceive
委托方法现在仍然可以工作?
还是必须始终打开该应用程序以实际执行任何有意义的操作以响应通知操作(写入本地数据库,发送HTTPS请求等)?
答案 0 :(得分:0)
是的,即使设备已锁定,委托也可以工作。仅当用户选择一个动作时,该应用程序才会被唤醒。另外,我不确定在调用完成模块之前将花费多少时间。
重要
如果您对行动的响应涉及访问磁盘上的文件, 考虑不同的方法。用户可以在 设备已锁定,这会使文件使用完整的 选项不适用于您的应用。如果发生这种情况,您可能需要保存 临时更改并将其集成到您应用的数据结构中 以后。
答案 1 :(得分:0)