前言:
当收到推送消息时,若需要对远程推送的消息进行一定的修改操作时,可以使用NotificationServiceExtension通知拓展服务,由于NotificationServiceExtension是一个独立的拓展服务,因此,证书与app的Bundle ID都是独立的一套。
1.新建NotificationServiceExtension
点击New->Target->Notification Service Extension,如图:
2.NotificationService类说明
NotificationService类有两个方法,- (void)didReceiveNotificationRequest:(UNNotificationRequest *)request withContentHandler:(void (^)(UNNotificationContent * _Nonnull))contentHandler;里面可以处理远程推送内容,修改远程推送内容的时间是有限的(不超过30S)。如果修改内容任务没有完成,系统会调用第2个方法serviceExtensionTimeWillExpire,给你提供最后一次提供修改内容的机会。如果你没有修改远程推送成功,系统将会展示远程推送最原始的内容
3.推送服务拓展的Bundle Id的证书配置
至此的话,NotificationServiceExtension就差不多了
如果需要在NotificationServiceExtension与主项目之间进行数据交流,则可以使用App Group。