UNNotificationContentExtension文档没有告诉你的

643 阅读1分钟

近期产品提了个需求,以通知里展示多个按钮,区分按钮跳转不同页面统计转化率,网上查了些资料,大致的流程都一样,但是重点是,没有提到交互,最重要的交互功能没有,只是展示的话没有任何意义。 关于如何新建一个target,类型的UNNotificationContentExtension的,就不多说了,只谈一些基本问题

  • 1.如果展开通知需要隐藏自带的底部标题和内容的,info.plist里配置NSExtension/NSExtensionAttributes/UNNotificationExtensionDefaultContentHidden bool型为YES,就不会展示默认的,只用你自己设计的视图了

  • 2.展示通知窗口标题,不使用通知里的title字段,可以info.plist里加入UNNotificationExtensionOverridesDefaultTitle 自定义vc的标题

  • 3.也是最重要的一点,如果需要在vc里有交互事件,比如按钮操作,必须加入 UNNotificationExtensionOverridesDefaultTitle 为YES,否则不管加多少button,连了线也不会起作用

  • 4.UNNotificationExtensionInitialContentSizeRatio 长宽比,比较通用的

  • 5.UNNotificationExtensionCategory 这个可以建多个target 然后通过这个identifer区分使用你的哪个target做视图展示,值得注意的是,这个可以设置为单个的string,也可以设置成array 对应多个,通过通知里的categoryIdentifier 做区分

  • 6.按钮打开链接,由于里面没有UIApplication相关的打开方法,需要使用[self.extensionContext openURL:[NSURL URLWithString:url] completionHandler:]; 可以打开你的app scheme,然后里面的参数就自己设置了

  • 7-(void)didReceiveNotification:(UNNotification *)notification; 此方法里接收对应的通知信息,通过notification.request.content.userInfo 取你自定义的通知信息字段来更新界面