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
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM