UNNotificationServiceExtension(通知服務(wù)擴(kuò)展)是在收到通知后,展示通知前窟社,做一些事情的。
UNNotificationContentExtension(通知內(nèi)容擴(kuò)展)給通知?jiǎng)?chuàng)建一個(gè)自定義的用戶(hù)界面
使用場(chǎng)景:實(shí)現(xiàn)支付寶語(yǔ)音開(kāi)關(guān)通知場(chǎng)景
在iOS10以下的時(shí)候,可以在Appdelegate中對(duì)收到通知后使用NSUserDefault判斷是否開(kāi)啟通知來(lái)打開(kāi)語(yǔ)音
在iOS10以上的時(shí)候通過(guò)UNNotificationServiceExtension擴(kuò)展來(lái)實(shí)現(xiàn)是否播放語(yǔ)音
對(duì)于iOS應(yīng)用和其擴(kuò)展來(lái)說(shuō)虹茶,想要實(shí)現(xiàn)數(shù)據(jù)共享的話(huà)需要開(kāi)啟App Groups來(lái)進(jìn)行數(shù)據(jù)共享。App Groups 為同一個(gè) 開(kāi)發(fā)商 的應(yīng)用或者擴(kuò)展定義了一組域隅要,在這個(gè)域中同一個(gè) group 可以共享一些資源蝴罪。
首先我們需要開(kāi)啟App Group。在Capabilities中打開(kāi)App Group步清,選擇主 Target要门,打開(kāi)它的 Capabilities 選項(xiàng)卡,找到 App Groups 并打開(kāi)開(kāi)關(guān)廓啊,然后添加一個(gè)你能記得的 group 名字欢搜,比如group.vocal。接下來(lái)你還需要為vocal這個(gè) Target 進(jìn)行同樣的配置谴轮,只不過(guò)不再需要新建 group炒瘟,而是勾選剛才創(chuàng)建的 group 就行。
然后第步,使用下面的代碼疮装,就可以實(shí)現(xiàn)讀寫(xiě)共享的數(shù)據(jù)了
NSUserDefaults* userDefault = [[NSUserDefaults alloc] initWithSuiteName:@"group.vocal"];// SuiteName必須和上面Capabilities配置填寫(xiě)的一致
在主Target項(xiàng)目中對(duì)這個(gè)進(jìn)行數(shù)據(jù)保存操作缘琅,我們就可以在擴(kuò)展中通過(guò)讀取該key數(shù)據(jù)進(jìn)而判斷是否開(kāi)啟關(guān)閉語(yǔ)音提示
關(guān)于擴(kuò)展Debug調(diào)試?
https://github.com/liuyanhongwl/ios_common/blob/master/files/App-Extension-Tips.md