我的情景:
我有一个应用程序,每天发送有关文章的推送通知。 iOS应用程序有三个UNNotificationActions附加到通知 - 一个用于阅读文章,一个用于共享文章,另一个用于保存文章以供日后使用。读取/共享文章操作是前台操作,而保存文章操作在后台执行。
我还有一个应用程序的watchOS版本,显示了一些热门故事,可以选择在以后的iOS应用程序中保存。
我的问题是:我只希望手表显示保存文章后台操作。另外两个UNNotificationActions不适用于watchOS应用程序(并且没有意义)。有没有办法在手表上隐藏这两个动作?我觉得这很容易,但我没有看到任何简单的方法来做到这一点,所以我觉得我必须遗漏一些明显的东西......
例如,新闻应用程序在iOS上有三个通知操作,两个前台操作。在watchOS上,只显示一个后台操作。
不知道你是否已经设法自己解决这个问题,但自从watchOS 5.0
你可以访问WKUserNotificationInterfaceController
的
// notificationActions can only be changed once didReceiveNotification: has been called
@available(watchOS 5.0, *)
open var notificationActions: [UNNotificationAction]
正如评论所述,您可以在func didReceive(_ notification: UNNotification
实现中删除iOS特定的操作。
我的解决方案:
- (void)didReceiveNotification:(UNNotification *)notification {
[super didReceiveNotification:notification];
self.notificationActions = nil;
}