什么是todayExtension
先附上官方文檔鏈接:App Extension Programming Guide: Today
簡單來說就是系統(tǒng)界面滑動到最左側(cè)的分塊視圖。Today 視圖的中擴(kuò)展被稱為插件。用戶可以通過插件快速訪問當(dāng)前重要的信息腻惠。比如,用戶打開 Today 視圖檢查當(dāng)前的股票價格和天氣情況畦粮,查看日程安排或者快速執(zhí)行類似標(biāo)記已完成項(xiàng)目等操作稳诚。用戶會頻繁打開Today視圖,并且他們期望能立即看到他們感興趣的信息介杆。插件也能展示在iOS設(shè)備的鎖屏界面上诀诊。
如何創(chuàng)建Today Extension
在一個已創(chuàng)建的工程中洞渤,F(xiàn)ile -> New -> Target即可看到apple現(xiàn)在提供的所有的App Extension, 選擇Today Extension。
點(diǎn)擊Next之后便可以看到自己添加的Extension属瓣。
可以看到所創(chuàng)建的文件夾中生成了一個VC和一個故事板载迄,就用TodayViewController來進(jìn)行視圖的布局,可以直接把故事板刪除抡蛙,不過一定要記得把Info.plist的NSExtension做一下就改护昧,把Storyboard的選項(xiàng)換成Class。
運(yùn)行之后粗截,就能看到效果啦惋耙。
不過看起來沒有什么吸引力,接下來開始對視圖部署。
UI樣式
因?yàn)楸尘澳J(rèn)帶了毛玻璃效果绽榛,所以不建議更改背景顏色湿酸,當(dāng)然,如果應(yīng)用有這個必要的話是可以更改的灭美。
Today窗口官方是給了默認(rèn)縮進(jìn)的推溃,如果對默認(rèn)的不滿意,也可以進(jìn)行更改
- (UIEdgeInsets)widgetMarginInsetsForProposedMarginInsets:(UIEdgeInsets)defaultMarginInsets
{
return UIEdgeInsetsZero;
}
共享數(shù)據(jù)
如何和應(yīng)用間共享數(shù)據(jù)的届腐,apple官方給的是使用UserDefault铁坎,當(dāng)然其他的數(shù)據(jù)獲取方式都是可行的,比如使用一個小型數(shù)據(jù)庫來存儲數(shù)據(jù)犁苏,更多可以參考數(shù)據(jù)持久化方案的一些文章硬萍。
就以UserDefault為例,先要創(chuàng)建一個Group,把Extension 和應(yīng)用都放入到一個Group里围详,就能訪問彼此存儲在本地的數(shù)據(jù)了朴乖。
對應(yīng)用和Extension添加一個一樣的App Groups,添加完成之后會默認(rèn)生成兩個文件
通過這個文件可以對標(biāo)識符進(jìn)行更改助赞。
接下來就是創(chuàng)建存儲在本地的共享文件
NSUserDefaults * userDefault = [[NSUserDefaults alloc] initWithSuiteName:@"group.TodayExtension.Today"]; //根據(jù)前面創(chuàng)建group使用的標(biāo)識符
[userDefault setObject:@"HelloWorld"forKey:@"SHARETODAYDATA"];
這里千萬注意不能用
NSUserDefaults * userDefault = [NSUserDefaults standardUserDefaults];
不然無法共享數(shù)據(jù)
喚起應(yīng)用程序
由于沙盒機(jī)制寒砖,apple喚起應(yīng)用只能依靠openURL,這里也不意外,同樣要通過open URL的方式喚起應(yīng)用嫉拐。首先添加URL Schemes,這是你要跳轉(zhuǎn)到的界面的名稱魁兼。
添加完之后婉徘,在VC里添加按鈕點(diǎn)擊事件就可以進(jìn)行跳轉(zhuǎn)了
先到這里結(jié)束,有什么問題都提出來咐汞,會的解答盖呼,不會的學(xué)習(xí)一波還是可以解答的...第一次在簡書上寫文章,身心俱疲化撕,如果覺得還行的話麻煩點(diǎn)一下喜歡几晤,鼓勵一下~~