iOSAPNs推送和VoIP推送

iOS APP 语音播报技术优化方案

文章目录

  • iOS APP 语音播报技术优化方案
  • 1. 当前的问题和建议方案
  • 2. 改用VoIP方案需要的工作
  • 3. APNs推送流程
  • 4. VoIP推送流程

1. 当前的问题和建议方案


目前开APP具备类似微信、支付宝的到账提示和语音播报功能。最初使用了第三方服务极光推送,后来增加了iOS的新特性Notification Service Extension,实现了iOS在APP后台、锁屏甚至APP被kill的情况下依然可以及时进行语音播报。

但是前段时间iOS 12.1 系统更新后,有商户不断反馈没有到账推送和语音播报,经过排查初步判断iOS 12.1+ 对Notification Service Extension的进行了限制,APP不在前台活动时,收到推送消息后无法再获取媒体权限,导致无法完成语音播报,通知消息也无法正常显示。
目前的方案是对iOS系统进行了区分,12.1之前的版本可以正常语音播报,12.1+ 的系统下APP在前台时可以进行语音播报,其它情况下只有通知提示。

此期间,移动端也在寻找新的方案优化体验,经过我们评估,现在建议使用和升级的技术方案是 VoIP推送,也是目前微信使用的到账语音播报方案。

VoIP和APNs 是Apple 提供的两套不同的推送系统。
APNs推送是没有应用场景限制的Apple通用推送通知服务,但是仅有提示音和通知栏展示,且有一定延时性和丢失率。

VoIP推送是专门供具备VoIP功能的APP使用的推送系统,延时低,并且在收到推送时可以激活APP以实现及时、流畅的网络语音通话。但是APP必须有VoIP类的功能才能获得批准上架App Store

APNs推送的缺点
1、iOS 12.1 以后无法语音播报
2、Apple APNs本身就有有延时和丢失率,再加上和极光server的通信过程,丢失率比VoIP高很多
3、使用的 极光推送对推送频率有限制,交易量过大会受到限制
4、开张吉祥和OEM的每个APP都需要维护极光推送的APP配置,工作繁琐
VoIP推送的优点
1、收到推送时可激活APP,获取媒体权限,在锁屏、APP挂起、APP被kill的情况下都可以进行语音播报
2、延时低,1秒左右送达,几无丢失
3、APP server直接和Apple 服务器通信,可控性强
4、积累成熟的技术方案

2. 改用VoIP方案需要的工作


iOS APP端
1、配置VoIP权限和环境,实现接收VoIP推送消息
2、开发语音呼叫的功能用于过审。目前的想法是开发一个 在线客服的壳子,提供语音通话的UI。若无法过审再开发真正的语音通话功能。
3、兼容原来的 极光推送Notification Service Extension
APP服务器
1、对接Apple的 Push Notification Service 接口 官方文档
2、在相关API的版本、Device token的存储、调用推送接口上做兼容开发,旧版本iOS APP使用极光推送,新版本使用VoIP推送

3. APNs推送流程


APP Apple push server 极光 server APP server 1 注册设备 2 device token 3 注册用户 4 jpushID 5 上传jpushID 6 发起推送 7 发起推送 8 消息送达 APP Apple push server 极光 server APP server

4. VoIP推送流程


APP Apple push server APP server 1 注册设备 2 device token 3 上传 device token 4 发起推送 5 消息送达 APP Apple push server APP server

你可能感兴趣的:(iOS,开发)