在 watchOS 上隐藏前台 UNNotificationAction
Posted
技术标签:
【中文标题】在 watchOS 上隐藏前台 UNNotificationAction【英文标题】:Hiding a foreground UNNotificationAction on watchOS 【发布时间】:2018-03-04 03:37:18 【问题描述】:我的场景:
我有一个应用程序可以每天发送有关文章的推送通知。 ios 应用程序在通知上附加了三个 UNNotificationAction —— 一个用于阅读文章,一个用于分享文章,一个用于保存文章以备后用。阅读/分享文章动作是前台动作,而保存文章动作发生在后台。
我还有一个 watchOS 版本的应用程序,它显示了一些头条新闻,并可以选择保存以供以后在 iOS 应用程序中使用。
我的问题是:我只希望手表显示保存文章背景操作。其他两个 UNNotificationAction 不适用于 watchOS 应用程序(并且没有意义)。有没有办法在手表上隐藏这两个动作?我认为这很容易,但我没有看到任何简单的方法可以做到这一点,所以我觉得我一定错过了一些明显的东西......
例如,新闻应用在 iOS 上具有三个通知操作,两个前台操作。在 watchOS 上,只显示一个后台操作。
【问题讨论】:
【参考方案1】:不知道你是否已经设法自己解决了这个问题,但由于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 特定操作。
【讨论】:
【参考方案2】:接下来我的解决方案:
- (void)didReceiveNotification:(UNNotification *)notification
[super didReceiveNotification:notification];
self.notificationActions = nil;
【讨论】:
以上是关于在 watchOS 上隐藏前台 UNNotificationAction的主要内容,如果未能解决你的问题,请参考以下文章
在 SwiftUI 中隐藏 Picker 在 watchOS 上的焦点边界