1.添加Widget讓APP數(shù)據(jù)互通是報(bào)錯(cuò)處理
xcode->targets中的主程序中的bundle ID和today extension中的bundle id都要在開(kāi)發(fā)者賬號(hào)下創(chuàng)建,且開(kāi)發(fā)者賬號(hào)還要?jiǎng)?chuàng)建一個(gè)App Groups策严,否則會(huì)報(bào)錯(cuò)柄冲,如圖:
參考網(wǎng)址https://onevcat.com/2014/08/notification-today-widget/
2.widget中添加空間的方式(storyboard或者故事板)
添加widget系統(tǒng)生成的info.plist文件,默認(rèn)是使用Storyboard 實(shí)現(xiàn)的界面逝变;如果你想使用代碼實(shí)現(xiàn)是界面的搭建,需更改這個(gè)配置文件奋构,如圖3:
在TodayViewController中的ViewDidLoad中添加:preferredContentSize = CGSizeMake(0, 80)//在設(shè)定 preferredContentSize 時(shí)壳影,指定的寬度都是無(wú)效的,系統(tǒng)會(huì)自動(dòng)將其處理為整屏的寬度弥臼,所以扔個(gè) 0 進(jìn)去就好了宴咧,
在TodayViewController中添加:
func widgetMarginInsetsForProposedMarginInsets(defaultMarginInsets: UIEdgeInsets) -> UIEdgeInsets {
return UIEdgeInsetsMake(0, 0, 0, 0)
}
參考網(wǎng)址https://www.ishuo.cn/doc/ermjmiqf.html
3.widget從Assets中添加圖片
widget系統(tǒng)生成的info.plist文件中,改成storyboard添加控件的方式径缅,將圖3中的info.plist文件修改一下
在xcode中選擇Assets.xcassets文件掺栅,在xcode最右側(cè)選擇show the file inspector,選擇target Membership芥驳,勾選項(xiàng)目中對(duì)應(yīng)的today extension柿冲,結(jié)果如圖:
然后按鈕在storyboard中就可以添加Assets.xcassets中的image
參考網(wǎng)址http://stackoverflow.com/questions/33150654/image-not-appearing-in-today-extension-widget
4.添加Extension的PP證書(shū)
開(kāi)發(fā)者賬號(hào)下不但要?jiǎng)?chuàng)建一個(gè)Extension的App ID,還要?jiǎng)?chuàng)建一個(gè)Extension的PP證書(shū)安裝到Xcode上
PP證書(shū)的作用就是將前面所有的證書(shū)集成于PP證書(shū)中安裝到真機(jī)上