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