1

我有一个使用 iOS 10 用户通知框架的 iOS 10 应用和 watchOS 3 扩展。本地通知是从 iOS 应用程序安排的,当 iPhone 锁定时显示在手表上,如果我举起 iPhone 并且不响应手表,则在锁定屏幕上显示在 iOS 应用程序上。iOS 通知具有三个后台操作按钮。

在此处输入图像描述

如果我在 iPhone 上响应通知,userNotificationCenter(_:didReceive:withCompletionHandler:)则会正确调用 UNUserNotificationCenter 委托方法。但是,如果我改为点击手表上的某个操作按钮,则不会调用该函数。

根据 Apple 的watchOS 应用程序编程指南,在以下部分Responding to Selected Actions对于后台操作,操作的处理取决于安排通知的位置:对于在 iPhone 上安排的本地通知,后台操作由您的 iOS 应用程序处理,无论哪个设备显示通知。

这没有发生,我不知道为什么。有没有人从watchOS得到这个工作?

4

1 回答 1

2

看起来我没有在 UNNotificationAction 中放置正确的选项。选项应该是一个空数组,而不是我错误地放在那里的 .foreground 。因此,例如 Just Practice 按钮,将其作为背景的正确操作是:

let justPracticeAction = UNNotificationAction(identifier: "justPractice", title: "Just Practice", options: [])

于 2016-11-20T13:37:25.340 回答