一、背景
公司正在研发的一款App,需要在进行消息推送时支持语音播报。 具体要求:
- 离线:App在用户未打开时,可收到消息推送
- 锁屏:用户在设备锁屏状态下,仍可收到消息推送
- 语音播报:收到消息推送时可同时进行语音播放
苹果的APNs消息推送, 支持在应用未打开及设备锁屏状态下收到推送。 而同时进行语音播报,则需要做一些特殊处理。 目前语音播报的场景有两种: 一种是固定音频的播放, 一种是需要动态合成后的音频播放。如支付宝或微信收款的消息提醒: “支付宝/微信成功收款100元” 。 基于以上两种场景,接下来会逐一分析。在分析之前,需要先对APNs做一个简单的了解。
二、认识APNs
APNs(英文全称:Apple Push Notification service),中文翻译为:苹果推送
通知
服务。
通知是由两个主要部分组成的数据:设备令牌deviceToken
和 payload
消息。
- 设备令牌
deviceToken
: 是类似于一个电话号码。