推送历史 - 消息详情 - iOS 送达数是新增的一个统计项,需要实现上报才能展示。
1. 定义:
送达到设备并展示出来的通知数量,与 “iOS 成功数” 区别在于是否真实送达到了设备上。
(iOS 成功数代表消息成功发至了 Apple 服务器,等待 Apple 服务器的下发)
2. 上报条件
- iOS 10 设备,集成 3.0.7 及以上版本的 iOS SDK
- 借助 Service Extension 进行上报,推送消息时必须勾选 “可选设置”中 mutable-content 选项(调用 API 请设置 Notification → iOS → mutable-content 字段为 true)
3. 功能实现方法:
文档,建议参考 JPush SDK 包中的 example。
- 将 jpush-extension-ios-xxx.a 和 JPushNotificationExtensionService.h 两个文件引入到您的 Service Extentsion 工程中。
- 添加 Framework:libz.tbd 和 libresolv.tbd。
- 调用[ [jpushSetAppkey:] 方法](https://docs.jiguang.cn/jpush/client/iOS/ios_api/#notification-service-extension)设置您的 appkey,请注意这里的 appkey 应该和您极光应用的 appkey 相同。
- 调用[ [jpushReceiveNotificationRequest:] 方法](https://docs.jiguang.cn/jpush/client/iOS/ios_api/#notification-service-extension)上报您的 apns 消息,完成送达统计;在该方法的 block 回调中进行 apns 的显示。
附加问题:jpush-extension-ios-xxx.a 与 jcore-ios-xxx.a 冲突
集成 3.0.7 及以上版本的 iOS SDK 运行后报如下错误, jpush-extension-ios-xxx.a 与 jcore-ios-xxx.a 冲突
ld: warning: object file (/Users/rongyao/huangyq/48_sha/xwolves48/Program/client/frameworks/runtime-src/proj.ios_mac/Lib/jpush-extension-ios-1.1.1.a(JPushExtensionTCPSocket.o)) was built for newer iOS version (10.0) than being linked (8.0)
ld: warning: object file (/Users/rongyao/huangyq/48_sha/xwolves48/Program/client/frameworks/runtime-src/proj.ios_mac/Lib/jpush-extension-ios-1.1.1.a(JPushExtensionSRVResolver.o)) was built for newer iOS version (10.0) than being linked (8.0)
duplicate symbol __sisHostDomains in:
/Users/rongyao/huangyq/48_sha/xwolves48/Program/client/frameworks/runtime-src/proj.ios_mac/Lib/jpush-extension-ios-1.1.1.a(JPushExtensionSession.o)
/Users/rongyao/huangyq/48_sha/xwolves48/Program/client/frameworks/runtime-src/proj.ios_mac/Lib/jcore-ios-1.2.0.a(JPUSHAddressController.o)
ld: 1 duplicate symbol for architecture armv7
这代表你们没有按照要求将 extension 的文件引入到 Service Extentsion 工程中,而是放在了主工程。
请务必参考 demo 配置,如下图,如果你不需要上报通知送达数,则可以删除 extension 相关的文件。
如果对你有帮助,点个赞 呗ლ(╹◡╹ლ)
点这里返回常见问题目录,不吹不黑,收藏本帖可以解决你 90% 的问题 (ノ◕ω◕)ノଘ_ଘ
0条评论