iOS10富文本推送--UNNotificationExtension--基础篇
来源:互联网 发布:产品网站源码 编辑:程序博客网 时间:2024/06/06 02:06
本文主要讲述如何集成富文本推送的相关扩展,另外还会有文章来详细展开
简介
本地推送和远程推送同时都可支持附带Media Attachments。不过远程通知需要实现通知服务扩展(UNNotificationServiceExtension),在service extension里面去下载attachment,但是需要注意,service extension会限制下载的时间(30s),并且下载的文件大小也会同样被限制。这里毕竟是一个推送,而不是把所有的内容都推送给用户。所以你应该去推送一些缩小比例之后的版本。比如图片,推送里面附带缩略图,当用户打开app之后,再去下载完整的高清图。视频就附带视频的关键帧或者开头的几秒,当用户打开app之后再去下载完整视频。
attachment支持图片,音频,视频,附件支持的类型及大小
准备工作
添加Notification Service Extension
在当前工程项目中添加新的Target–> Notification Service
先在Xcode 打开你的工程,File–>New–>Target然后添加这个Notification Service Extension:
添加Notification Content Extension
在当前工程项目中添加新的Target–> Notification Content
先在Xcode 打开你的工程,File–>New–>Target然后添加这个Notification Content Extension:
添加扩展完成
这样你的项目中就会有两个Extension Target
设置
ServiceExtension Info.plist
- 添加http协议支持,没错,这里是支持http协议的,不像其他文章说的不支持
ContentExtension Info.plist
- 设置可以改变
- 如果不想使用故事版把NSExtensionMainStoryboard替换为NSExtensionPrincipalClass(我这里已经)
ServiceExtension基本设置
- 当前Target的BundleID根据项目主Target的BundleID自动生成
- 格式”项目主Target的BundleID.-当前Target名称”
- 例如当前项目BundleID为 com.apple.NotificationDemo,ServiceExtension的名字是NotificationService
- 那么ServiceExtension的BundleID就是com.apple.NotificationDemo.-NotificationService
- Automatically manages signing 官方建议勾选
- Deployment Target 必须设置为10.0以上,不能设置为10.0以下
ContentExtension基本设置
- 当前Target的BundleID根据项目主Target的BundleID自动生成
- 格式”项目主Target的BundleID.-当前Target名称”
- 例如当前项目BundleID为 com.apple.NotificationDemo,ContentExtension的名字是NotificationContent
- 那么ServiceExtension的BundleID就是com.apple.NotificationDemo.-NotificationContent
- Automatically manages signing 官方建议勾选
- Deployment Target 必须设置为10.0以上,不能设置为10.0以下
如何使用
- 首先当前应用需要支持APNS,不支持的自己集成去吧
服务器向设备发送通知
这个通知消息的格式是有要求的,有以下几点需要注意:
* aps字段必须要有,不然收不到通知
* aps字段下alert字段必须要有,不然也收不到通知
* alert字段的值是字符串的时候,不可为空,不然的话你虽然收的到通知,但是是手机除了震动或者声音,没有任何提示
* alert字段的值是字典的时候,下面这三个字段必须要有一个,不然和上面一样。就是一句话alert的值必须是可以使用的
* mutable-content字段值最好是1,目前没见过其他值
* 如果你想在iOS10上展示位富文本的推送格式,category字段必须带,值必须在info.plist文件中能找的到的
{ "aps":{ "alert" : { "title" : "iOS远程消息主标题!-title", "subtitle" : "iOS远程消息副标题!-Subtitle", "body" : "longge -body" }, "sound" : "default", "badge" : "1", "mutable-content" : "1", "category" : "Image_Category", }, "image" : "http://ot260qjni.bkt.clouddn.com/testOne.jpeg"}
上面的测试图片好像不能用了(具体能不能用你们最好测试一下,直接浏览器打开能看到就可以用),我也不知道为啥 你们可以自己去找找先关的图床。
- iOS10富文本推送--UNNotificationExtension--基础篇
- iOS10富文本推送--UIMutableUserNotificationAction
- iOS10富文本推送--NotificationServiceExtension
- iOS10富文本推送--NotificationContentExtension
- iOS10 推送必看(基础篇)
- iOS10 推送必看(基础篇)
- iOS10 推送必看(基础篇)
- iOS开发 iOS10推送必看(基础篇)
- iOS开发 iOS10推送必看(基础篇)
- iOS开发 iOS10推送必看(基础篇)
- iOS开发 iOS10推送必看(基础篇)
- iOS开发 iOS10推送必看(基础篇)
- iOS开发 iOS10推送必看(基础篇)
- js基础-富文本编辑器
- iOS10 推送
- 富文本
- 富文本
- 富文本
- Spring笔记(一)——xml方式实现IoC和DI
- C 语言基础 注释
- 【脚本语言系列】关于Python基础知识协程,你需要知道的事
- Python中如何进行数据分组
- MobX 在 React Native开发中的应用
- iOS10富文本推送--UNNotificationExtension--基础篇
- 洛谷P1427 小鱼的数字游戏
- Spark-Streaming之transform操作,实时黑名单过滤案例
- 源码等资源下载网站
- PCIe学习笔记(21)--- 中断(2)---MSI
- 运行时异常与非运行时异常的区别
- C++按引用传递参数的问题
- 用logstash导入ES且自定义mapping时踩的坑
- LibreOffice,一个集美貌与才华于一身的软件