1. 程式人生 > 實用技巧 >IOS 推送訊息聲音自定義

IOS 推送訊息聲音自定義

https://www.jianshu.com/p/d0ef94ee5282

https://www.jianshu.com/p/1ee3d75086c7

https://blog.csdn.net/sinat_27741463/article/details/102758611

https://www.jianshu.com/p/f326987c737e

http://www.cocoachina.com/articles/17769

https://www.jianshu.com/p/3260f864e5aa

iOS 遠端推送和本地推送時播放自定義音訊

先上結論:

在各平臺及極光推送技術論壇看了大量技術貼後,總結了實現接到推送時播放音訊的幾種方法:

  1. 使用voip,即pushKit,是蘋果專為視訊通話開放的高優先順序推送,此推送可支援很大程度的自定義,但是如果APP沒有視訊通話功能時使用這個方法,稽核時很可能被拒,是一種偏方。我這裡沒用這個方法。
  2. 使用靜默推送,然後在接受到推送之後建立本地推送,在本地推送中播放音訊。但是靜默推送每小時有次數限制。未採用此方法。
  3. 直接在推送中設定sound欄位,sound欄位支援自定義音訊,只需要將音訊拖到工程中,並在傳送推送時將音訊全名放到sound欄位中即可,系統會自動播放這段音訊。我這裡直接用的這個方法,此方法注意事項及通知示例見下方。
  4. 使用Notification Service Extension,在推送回調裡使用AVAudioSession來播放音訊,這個方法在iOS12.1之後已經不可用了。iOS12.1之前給出這個拓展推送主要是為了豐富推送的UI樣式,推送資訊加密之類的,結果卻被用做推送語音播報,所以在12.1之後,在這個推送擴充套件裡面AVAudioPlayer就失效了.

需要注意的是:

  • 以上2,3方法,播放的音訊在預設情況下只有5秒左右,當通知欄收回時,音訊也會自動停止。想要播放更長的時間則需要在手機設定-》你的APP設定-》通知-》橫幅風格 改為持續,這樣推送通知不會收回,音訊就可以播放完。或者保證音訊在五秒左右也可以。
  • 應用在後臺時想觸發回撥需要在推送中傳入欄位:"content-available":1,或者"content-available":true
  • 靜默推送需要設定"mutable-content":1 //或true,否則不會走target中的回撥,且在一些版本的iOS系統下,target中回撥不會斷點,但是會正常執行。
通知示例:
{"aps"=>{
        "content-available" => 1,
        "alert" => {
            "title"=>"這是標題",
            "subtitle"=>"這是小標題",
            "body"=>"這是內容"
        },
        "badge" => 1
        "sound" => "one.wav"
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

極光推送觸發回撥需勾選content-available,如下圖

IOS訊息推送聲音預設使用系統聲音,可以支援自定義。

注意事項:

1.由於系統播放器播放支援的音訊格式系統預設三種aiff, wav, 和 caf (應用在前端後臺不執行都可以播放,只要安裝應用能收到訊息就可以)。

轉換方法(afconvert /System/Library/Sounds/Submarine.aiff ~/Desktop/sub.caf -d ima4 -f caff -v)。

2.音訊放在工程主目錄。

3.音訊時長不要超過30s。

4.音訊名稱要和{"aps":{"alert":"This is some fancy sound message.","badge":2,"sound": "sound.caf"}}要和推送的sound欄位值保持一個可以自己定義。

5.真機執行,靜音模式聽不到。關閉靜音模式。

詳見官網:https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/IPhoneOSClientImp.html#//apple_ref/doc/uid/TP40008194-CH103-SW1



作者:志閒真人
連結:https://www.jianshu.com/p/d0ef94ee5282
來源:簡書
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。