我有一个使用iOS 10用户通知框架的iOS 10应用程序和watchOS 3扩展程序。本地通知是从iOS应用程序安排的,并在iPhone锁定时显示在手表上,如果我抬起iPhone,则显示在锁定屏幕上的iOS应用程序上,并且不响应手表。 iOS通知有三个后台操作按钮。
如果我在iPhone上回复通知,则会正确调用userNotificationCenter(_:didReceive:withCompletionHandler:)
UNUserNotificationCenter委托方法。但是,如果我点击手表上的某个操作按钮,则不会调用该功能。
根据Apple App Programming Guide for watchOS,在Responding to Selected Actions
部分下:
对于后台操作,操作的处理取决于通知的安排位置:对于在iPhone上安排的本地通知,后台操作由iOS应用处理,无论哪个设备显示通知。
这种情况没有发生,我也不知道为什么。有没有人从watchOS得到这个工作?
答案 0 :(得分:1)
看起来我没有在UNNotificationAction中输入正确的选项。选项应该是一个空数组,而不是我错误地放在那里的.foreground。 因此对于例如Just Practice按钮,正确的背景动作是:
let justPracticeAction = UNNotificationAction(identifier: "justPractice", title: "Just Practice", options: [])