iOS Widget开发
一.什么是Widget?
百度百科:
百度百科.png其实Widget就是一个小组件,独立于应用之外的又一个新小应用,但是和主应用之间又有着一定的关系
效果图:
支付宝效果.PNG下面估计大家都知道是3DTouch,而上面的就是Widget
二.那么怎么实现?
1.首先因为Widget是一个独立的小应用,因此证书也需要另外的一套,也就是说如果你要开发带有这样功能的APP,你需要两套证书,一套是主项目的,另外一套是widget的,至于证书的创建,在这里我就不多说了,具体流程大家可以网上去找.
主项目证书的创建流程和普通的创建流程一样,widget的证书创建流程和主项目的创建流程有一点区别
首先:
注意一:
Bundle ID:widget的Bundle Id是在主项目的Bundle ID的基础上加的,例:
主项目:
主项目Bundle ID.pngwidget:
widget项目Bundle ID.png注意二:widget的App ID创建的时候要配置 App Groups项,例:
主项目:
主项目App Groups配置.pngwidget:
widget项目App Groups配置.png至于怎么配置,其实很简单,大家在创建APP ID的时候,在下面第一项勾选App Groups
配置App Groups.png创建APP ID之后,需要去创建一个App Groups
App Groups.png然后把创建后的App Groups配置到对应的APP ID里面即可,这样证书就可以使用了
2.接下来,就是创建一个项目或者是在你想要添加widget的项目里面找到
添加target.png选择
选择.png这个时候,你会看到项目目录里面多了
目录结构.png配置之前给Widget添加的App Groups
widget配置App Groups.png对于 我来说,习惯了纯代码去开发,所以,果断删掉storyboard
纯代码.png其实这个时候你运行项目,已经有效果了
效果图.PNG 效果图.PNG细心的人,可能还有这么个发现:
日历折叠效果.PNG 日历展开效果.PNG这个日历有一个展开和折叠的效果,那么怎么实现的呢,看下面
展开和折叠效果实现.png 展开和折叠效果实现.png调整widget内边距
调整widget内边距.png刷新数据
刷新数据.png跳转到主应用
widget项目:
配置URL Schemes.png widget项目.png主项目:
主项目:.png至于两者之间的传值,这里不多讲
最终效果:
最终效果.PNG 最终效果.PNG如果widget里面要使用主项目里面的类,需要做下面操作
widget里面要使用主项目里面的类.png