iOS10推送通知(Notification Extension)與數(shù)據(jù)共享

UNNotificationServiceExtension(通知服務(wù)擴(kuò)展)是在收到通知后,展示通知前,做一些事情的。

UNNotificationContentExtension(通知內(nèi)容擴(kuò)展)給通知?jiǎng)?chuàng)建一個(gè)自定義的用戶界面

使用場(chǎng)景:實(shí)現(xiàn)支付寶語音開關(guān)通知場(chǎng)景

在iOS10以下的時(shí)候,可以在Appdelegate中對(duì)收到通知后使用NSUserDefault判斷是否開啟通知來打開語音

在iOS10以上的時(shí)候通過UNNotificationServiceExtension擴(kuò)展來實(shí)現(xiàn)是否播放語音

對(duì)于iOS應(yīng)用和其擴(kuò)展來說,想要實(shí)現(xiàn)數(shù)據(jù)共享的話需要開啟App Groups來進(jìn)行數(shù)據(jù)共享。App Groups 為同一個(gè) 開發(fā)商 的應(yīng)用或者擴(kuò)展定義了一組域,在這個(gè)域中同一個(gè) group 可以共享一些資源。



首先我們需要開啟App Group。在Capabilities中打開App Group,選擇主 Target,打開它的 Capabilities 選項(xiàng)卡,找到 App Groups 并打開開關(guān),然后添加一個(gè)你能記得的 group 名字,比如group.vocal。接下來你還需要為vocal這個(gè) Target 進(jìn)行同樣的配置,只不過不再需要新建 group,而是勾選剛才創(chuàng)建的 group 就行。

然后,使用下面的代碼,就可以實(shí)現(xiàn)讀寫共享的數(shù)據(jù)了

NSUserDefaults* userDefault = [[NSUserDefaults alloc] initWithSuiteName:@"group.vocal"];// SuiteName必須和上面Capabilities配置填寫的一致

在主Target項(xiàng)目中對(duì)這個(gè)進(jìn)行數(shù)據(jù)保存操作,我們就可以在擴(kuò)展中通過讀取該key數(shù)據(jù)進(jìn)而判斷是否開啟關(guān)閉語音提示

關(guān)于擴(kuò)展Debug調(diào)試?

https://github.com/liuyanhongwl/ios_common/blob/master/files/App-Extension-Tips.md

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容