原本想使用區域推播(Local Notification)來提醒使用者,遇到需求只要震動而不要有介面顯示,可以怎麼做呢?原來只要開背景模式(Required background modes)的「App plays audio or streams audio/video using AirPlay」,即可在偵測到Beacon同時震動!
可是送審會不會有問題?畢竟文檔上所描述的使用方式我都沒有實現⋯⋯
Value顯示:audio,Audio, AirPlay and Picture in Picture
此個選項包含四種場景,分別是:音頻的播放、錄音、AirPlay及畫中畫的視頻播放。
- 音頻的播放:在播放音頻時,就算App退到後台,只要一直有音頻在播放,那App就可持續在後台運行。
- 錄音:App可以請求使用麥克風,而當開啟了此後台選項,App在使用麥克風的時候,即使退到後台,也可以一直後台運行,透過查看微信安裝包中的plist文件,微信的語音聊天,就是通過這種方式實現。而當該類App退到後台後,iOS系統的狀態欄會變成紅色,並在狀態欄中顯示正在使用麥克風的應用的名稱。
- AirPlay:AirPlay是指將iOS設備,或者Mac設備上的音視頻,同步到另一個設備中播放。舉兩個例子,第一個是把iPhone上的音樂通過藍牙的方式在汽車的藍牙音響播放,第二個是把iPhone上的視頻,同步到智慧電視屏幕上播放。此功能一般用於多端及多屏的體驗。
- Picture in Picture:畫中畫是iPad版本的iOS 9新增加的功能,可以在iOS的桌面,或者其他應用的界面的上面播放視頻,從而該視頻區域所屬的應用就可以後台運行了。此功能現在只在iPad應用中提供。
程式碼只要一行,就能實現「震動」功能。
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
同時要引用:
#import <AudioToolbox/AudioToolbox.h>
沒想到送審後順利上架!
之後管他會不會被拒,先送審再說啦:P~
參考:Enabling Background Audio、Playing media while in the background using AV Foundation on iOS、iOS background service vibrate phone、Not Showing banner only vibrate device when push notification received、ios background modes。
隨意留個言吧:)~