ios - 以编程方式更改推送通知内容

标签 ios objective-c ios10 ios11

正如我们所知,当推送通知横幅准备好显示时调用此函数。

-(void)userNotificationCenter:(UNUserNotificationCenter* )center 
willPresentNotification:(UNNotification* )notification 
withCompletionHandler:(void (^)(UNNotificationPresentationOptions
 options))completionHandler{


 }

在这个函数中有类通知(UNNotification),其中包含将要在横幅上显示的信息。 现在的问题是我们可以在应用程序中更改推送通知的内容吗? 我可以用这种方式存储所有内容。

NSString *title=notification.request.content.title;
NSString *subTitle=notification.request.content.subTitle;

等等。 但问题是这些属性(标题、副标题)只是只读的。 有没有办法更改此完成处理程序或其他方法中的内容?

最佳答案

创建 NotificationService扩大。当您在有效负载中的 aps 中将可变内容标志作为 1 发送时,iOS 系统会启动您的扩展程序并让您有机会更改通知内容。即使您的应用程序处于终止状态,这也会起作用。唯一的缺点是这仅适用于 iOS 10 及更高版本。

关于ios - 以编程方式更改推送通知内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46579797/

相关文章:

ios - 什么更有效,覆盖 drawRect 或使用 viewWillAppear

swift - 类中的 tableView(_ tableView : UITableView, EditingStyleForRowAt 会导致 IOS 9.3 和 IOS 10+ 中的行为不一致

ios - 从 NavigationController 后退按钮返回多个 ViewController

ios - 在 iOS 中截取整个屏幕

objective-c - Objective C - 在调用方法时得到通知

ios - iOS 10中的AVAssetExportSession不适用于iPhone 7

ios9 - UIToolbar 不显示带有自定义 View 的 UIBarButtonItem(仅在 iOS 11 以下)

ios - 在 iOS 聊天中的 QuickBlox QBUUser 中设置聊天/头像

javascript - ajax 中的 phonegap XML 解析器在 iOS 上出错

ios - UITextField:如何对 "Done"键使用react并验证输入