iOS應(yīng)用間通信

上一篇文章中我們已經(jīng)詳細的介紹了通知擴展怎么使用,無奈我們產(chǎn)品的設(shè)計又有了其他 奇(辣) 思(雞) 妙(到) 想(死)的想法.

產(chǎn)品設(shè)計圖

類似于這種就必須需要在通知擴展中拿到拿到主工程的配置

在iOS 8系統(tǒng)之前,每一個app在物理上都是彼此獨立的盖矫,app之間不能互訪彼此的私有數(shù)據(jù)。而在引入擴展之后,其他app可以與擴展進行數(shù)據(jù)交換√阶瘢基于安全和性能的考慮焕檬,每一個擴展運行在一個單獨的進程中,它擁有自己的bundle笆搓, bundle后綴名是.appex。擴展bundle必須包含在一個普通應(yīng)用的bundle的內(nèi)部。

通知擴展

但是可能是本人太笨的原因砚作,還是無法在通知擴展中調(diào)用主工程的配置窘奏,于是我在網(wǎng)上廢了很長一段時間去搜資料(其實是自己太懶,沒有認真搜)葫录,終于被我找到了一個神奇的東西App Groups

App Groups

iOS8之后蘋果加入了App Groups功能着裹,應(yīng)用程序之間可以通過同一個group來共享資源,app group可以通過NSUserDefaults進行小量數(shù)據(jù)的共享米同,或者使用 NSFileCoordinatorNSFilePresenter 甚至是 CoreDataSQLite 來進行更大的文件或者是更復(fù)雜的數(shù)據(jù)交互骇扇。

首先我們需要開啟 App Groups。得益于 Xcode 5 開始引入的Capabilities面粮,這變得非常簡單(至少不再需要去 developer portal 了)少孝。選擇主ZYBaseTest,打開它的 Capabilities 選項卡熬苍,找到 App Groups 并打開開關(guān)稍走,然后添加一個你能記得的 group名字,比如 group.ZYNotificationServiceGr柴底。接下來你還需要為 ZYBaseTestPushExtend 這個 target 進行同樣的配置婿脸,只不過不再需要新建 group,而是勾選剛才創(chuàng)建的 group 就行柄驻。

主工程

屏幕快照 2018-04-11 上午9.00.59.png

通知擴展

以上兩個操作在ZYBaseTestZYBaseTestPushExtend兩個target中都需要設(shè)置好狐树,設(shè)置好了之后,數(shù)據(jù)就可以共享了鸿脓。

注意 抑钟,坑點要來了

一般我們都是使用NSUserDefault來存儲一些小的配置,比如我就是存的用戶是否開啟了語音播報野哭、是否選擇了簡易的語音播報在塔。我相信大家一般都是用[NSUserDefaults standardUserDefaults]來創(chuàng)建NSUserDefaults對象,但是如果通過這種方式創(chuàng)建的話拨黔,你是無法在通知擴展中拿到你在主工程中設(shè)置的NSUserDefaults信息;桌!!

在這里蓉驹,存儲數(shù)據(jù)時,一定要通過[[NSUserDefaults alloc] initWithSuiteName:@"groupName"]這個格式去創(chuàng)建NSUserDefaults對象揪利,groupName填寫當前設(shè)置AppGroups勾選的名字(比如我的就是group.ZYNotificationServiceGr)

創(chuàng)建方法區(qū)別

  • initWithSuiteName會在Library/Preference下新建一個以name為名字的plist文件 (兩個訪問的是同一個plist)
  • [NSUserDefaults standardUserDefaults]是以bundle id為名字的一個plist文件 (兩個訪問的是不同的plist)

AA:利用這個我們可以給每一個用戶新建一個偏好設(shè)置的文件态兴,保存皮膚,字體等疟位,不同的用戶登錄就會有不同的效果瞻润。

另外可能是我個人的原因吧,即使設(shè)置了APP group我還是無法在通知擴展中訪問pch內(nèi)的東西,所以我只有祭出殺器
大殺器-手動導(dǎo)入

然后就是很順利的訪問了


通知擴展中的代碼
最后為了你們看的方便绍撞,我把我宏的字段也給你們看
宏的字段

吼吼~結(jié)束了正勒,本人文采太差了,見諒見諒哈 傻铣。希望對你們有點點幫助章贞。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市非洲,隨后出現(xiàn)的幾起案子鸭限,更是在濱河造成了極大的恐慌,老刑警劉巖两踏,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件败京,死亡現(xiàn)場離奇詭異,居然都是意外死亡梦染,警方通過查閱死者的電腦和手機赡麦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來帕识,“玉大人泛粹,你說我怎么就攤上這事《啥常” “怎么了戚扳?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長族吻。 經(jīng)常有香客問我帽借,道長,這世上最難降的妖魔是什么超歌? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任砍艾,我火速辦了婚禮,結(jié)果婚禮上巍举,老公的妹妹穿的比我還像新娘脆荷。我一直安慰自己,他們只是感情好懊悯,可當我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布蜓谋。 她就那樣靜靜地躺著,像睡著了一般炭分。 火紅的嫁衣襯著肌膚如雪桃焕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天捧毛,我揣著相機與錄音观堂,去河邊找鬼让网。 笑死,一個胖子當著我的面吹牛师痕,可吹牛的內(nèi)容都是我干的溃睹。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼胰坟,長吁一口氣:“原來是場噩夢啊……” “哼因篇!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起腕铸,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤惜犀,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后狠裹,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體虽界,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年涛菠,在試婚紗的時候發(fā)現(xiàn)自己被綠了莉御。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡俗冻,死狀恐怖礁叔,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情迄薄,我是刑警寧澤琅关,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站讥蔽,受9級特大地震影響涣易,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜冶伞,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一新症、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧响禽,春花似錦徒爹、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至侯繁,卻和暖如春胖喳,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背巫击。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工禀晓, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人坝锰。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓粹懒,卻偏偏與公主長得像,于是被迫代替她去往敵國和親顷级。 傳聞我的和親對象是個殘疾皇子凫乖,可洞房花燭夜當晚...
    茶點故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容