全部产品
云市场

移动推送 iOS : 自定义通知的UI

更新时间:2019-09-10 10:03:32

  • 除了 Notification Service Extension,另一个通知相关的 Extension 为内容扩展 Content Extension ,可用于自定义通知详情UI,如修改样式、颜色等 。
  • iOS 10 收到通知后,支持下拉通知(经测试 iPhone 5c 不支持,建议使用 iPhone 6 以上手机测试) or 3D touch 展开通知详情,携带图片的通知详情样式默认如下图所示,内容扩展可针对通知详情进行定制。

    ios-content-ui

  • 内容扩展添加步骤:

    • Xcode -> File -> New -> Target,选择 Notification Content,如下图所示:ios10-notice-content

    • 输入 Target 名,Xcode 自动生成 NotificationViewController 头文件和源文件, MainInterface.storyboardInfo.plist ,其中 NotificationViewControllerMainInterface.storyboard 一起定义了通知详情的 UI 。

    • Info.plist中 自动生成 NSExtension 相关 KV 配置,具体含义如下所示:
      • NSExtensionAttributes
        • UNNotificationExtensionCategory,指定自定义通知详情UI适用于哪些category,可为String or Dictionary;(必需)
        • UNNotificationExtensionInitialContentSizeRatio,通知视图长宽比例;(必需)
        • UNNotificationExtensionDefaultContentHidden,原本通知内容是否隐藏,若不指定,默认为NO;(可选)
      • NSExtensionMainStoryboard,storyboard文件名,默认填充为MainInterface;(必需)
      • NSExtensionPointIdentifier,默认填充为com.apple.usernotifications.content-extension;(必需)
  • OpenAPI推送时,必需通过setiOSNotificationCategory 接口指定通知 category,只有指定的category 在 Info.plist 的UNNotificationExtensionCategory设置,才能保证通知详情自定义UI生效。
  • 参考iOS Demo Notification Content Extension的实现方式,进行通知详情自定义UI的设置,如下图所示,绿色的 aliyun-body 为自定义的展示UI,字段内容通过拷贝通知内容得来。image

参考:《iOS 10 通知适配 —> 6. 通知详情自定义UI》