iOS App处于后台/被杀死的状态仍可进行语言播报的实现 (适配iOS12.1 ,iOS15的本地通知功能)
Posted iOS逆向
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS App处于后台/被杀死的状态仍可进行语言播报的实现 (适配iOS12.1 ,iOS15的本地通知功能)相关的知识,希望对你有一定的参考价值。
引言
背景:ios12.1 之后 AVAudioPlayer 无法在后台播放语音。
在杀死APP的情况下唤醒APP,并执行代码的实现方式有Voip 推送和iOS 10新增的Service Extension。
iOS13中(XCode11编译)苹果不再允许PushKit应用在非voip电话的场景上,如果需要使用PushKit的话则需要接入CallKit的接口,导致收到客户端收到Voip Push时会拉起一个接打电话的全屏界面。
在iOS10中推出的Notification Service Extension(NSE),当apns的payload上带上"mutable-content"的值为1时,就会进入NSE的代码中。与Voip方不同之处是,NSE不能唤醒主应用,也不能访问主应用的文件空间,只能在Extension进程中处理相应的逻辑。在NSE中,开发者可以更改通知的内容,利用离线合成或者从后台下载的方式,生成需要播报的内容,通过自定义通知铃声的方式,达到语音播报提醒
以上是关于iOS App处于后台/被杀死的状态仍可进行语言播报的实现 (适配iOS12.1 ,iOS15的本地通知功能)的主要内容,如果未能解决你的问题,请参考以下文章
iOS app处于后台/被杀死的状态仍可进行语言播报(iOS12.1以上在后台或者被杀死无法语音播报的解决方案)适配iOS15的本地通知功能
iOS App处于后台/被杀死的状态仍可进行语言播报的实现方案( 离线合成+Service Extension)
iOS App处于后台/被杀死的状态仍可进行语言播报的实现 (适配iOS12.1 ,iOS15的本地通知功能)
iOS App处于后台/被杀死的状态仍可进行语言播报的实现 (适配iOS12.1 ,iOS15的本地通知功能)