在watchOS上隐藏前景UNNotificationAction

问题描述 投票:0回答:2

我的情景:

我有一个应用程序,每天发送有关文章的推送通知。 iOS应用程序有三个UNNotificationActions附加到通知 - 一个用于阅读文章,一个用于共享文章,另一个用于保存文章以供日后使用。读取/共享文章操作是前台操作,而保存文章操作在后台执行。

我还有一个应用程序的watchOS版本,显示了一些热门故事,可以选择在以后的iOS应用程序中保存。

我的问题是:我只希望手表显示保存文章后台操作。另外两个UNNotificationActions不适用于watchOS应用程序(并且没有意义)。有没有办法在手表上隐藏这两个动作?我觉得这很容易,但我没有看到任何简单的方法来做到这一点,所以我觉得我必须遗漏一些明显的东西......

例如,新闻应用程序在iOS上有三个通知操作,两个前台操作。在watchOS上,只显示一个后台操作。

swift apple-push-notifications watchkit apple-watch unusernotificationcenter
2个回答
0
投票

不知道你是否已经设法自己解决这个问题,但自从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特定的操作。


0
投票

我的解决方案:

- (void)didReceiveNotification:(UNNotification *)notification {
  [super didReceiveNotification:notification];
  self.notificationActions = nil;
}
© www.soinside.com 2019 - 2024. All rights reserved.