最近一個(gè)收款項(xiàng)目铐维,其中一個(gè)需求是收款推送實(shí)時(shí)播報(bào)收款金額柬泽。關(guān)于iOS推送的發(fā)展和機(jī)制不再多贅述。直接上方案和問(wèn)題
方案一:直接自定義收款推送提示音嫁蛇,不區(qū)分iOS10和以下設(shè)備兼容锨并,前臺(tái)直接播放收款語(yǔ)音。遠(yuǎn)程推送直接播放固定提示音睬棚,比如:“***有一筆收款第煮,請(qǐng)查收”解幼,但是這種方案比較初級(jí),一般情況下不符合產(chǎn)品需求和用戶體驗(yàn)
方案二:VoIP Push Notification包警,iOS8之后的推送新特性:是在iOS8以上才支持的新Push類型撵摆,就是打視頻或者語(yǔ)音電話的時(shí)候推送功能『蓿可以實(shí)現(xiàn)實(shí)時(shí)語(yǔ)音推送需求特铝,但是,但是壹瘟,app需要有網(wǎng)絡(luò)電話功能才可以鲫剿,不然AppStore審核會(huì)直接被拒。有興趣的可以參考下騰訊bugly的文章:微信iOS收款到賬語(yǔ)音提醒開(kāi)發(fā)總結(jié)
方案三:重點(diǎn)稻轨,也是我們最終采納的方案灵莲,iOS10之后的推送擴(kuò)展UNNotificationServiceExtension,同支付寶的處理方式一樣:iOS10以上的設(shè)備收款殴俱,語(yǔ)音推送直接播報(bào)金額政冻,如果是iOS10以下的設(shè)備,直接播放自定義固定提示音即可线欲。使用UNNotificationServiceExtension明场,你有30秒的時(shí)間處理這個(gè)通知(包括語(yǔ)音播放和下載圖片等),關(guān)于此擴(kuò)展的作用和詳細(xì)使用不再描述询筏,有太多的資料榕堰。如果使用了此擴(kuò)展創(chuàng)建了target竖慧,你會(huì)發(fā)現(xiàn)在iOS10以上沒(méi)問(wèn)題嫌套,但是在iOS10以下的設(shè)備是無(wú)法安裝的。怎么解決呢圾旨?經(jīng)過(guò)將近兩天的研究和查閱資料踱讨,均是無(wú)果。最終實(shí)踐發(fā)現(xiàn)砍的,NotificationService的target需要設(shè)置成10.0+痹筛,然后使用iOS10以下的設(shè)備調(diào)試、打包安裝廓鞠,可以完美運(yùn)行帚稠。