需求:
用户扫描商户二维码付款成功或退款成功后,APP收到相应收退款通知并将通知内容语音播报出来。
分析:
情形一:应用未打开过,无法进行语音播报。
情形二:应用打开并在前台工作,收到通知语音播报。
情形三:应用打开后进入后台或锁屏状态,收到通知语音播报。
语音播放实现:
选用科大讯飞语音合成在线版SDK (免费)或 iOS 系统TTS(iOS 7.0及以上);
代码实现:
对于情形三,目前成功的处理方案:
根据苹果对于应用后台运行的解释,进行如下的配置
https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html#//apple_ref/doc/uid/TP40007072-CH4-SW1
1、在info.plist中添加Backgroud Modes ,申请后台音频和后台通知的权限,后台通知为静默通知,服务器推送添加参数content-available: 1才有效,iOS代理方法:
2、开启后台任务:
当应用挂起,启动一个后台任务,为了让任务长时间运行,添加了一个三分钟播报一个音量为0的语音,用以维持后台状态,应用进入前台则停止后台任务。
3.经测试:
后台工作对电池的消耗很低,能正常接收通知并语音播报,但对于后续上AppStore时是否能过审还不确定。