widget非必要开发要求,但还是应该了解一下,这篇文章也是我刚刚学习后写的,初级入门了解应该是够了,希望可以帮助有同样需求的小伙伴们〜
从以下几个点说:
1.创建widget程序
2.与宿主app关连
3.界面
4.与宿主app数据共享
现在开始:
1.
这样便创建了一个widget如下图:
2.扩展程序虽然是程序的扩展,但是这两个应用其实是“独立”的。准确的来说,它们是两个独立的进程,默认情况下互相不应该知道对方的存在。所以要进行关联设置
注://后面不能跟中文(demo试过,如有问题请指教,共同学习)
3.习惯纯代码的同学可以进行以下设置,也完成界面布局
其它的写法和正常开发没差。
设置Widget的size
iOS10之后,Widget支持展开及折叠两种展现方式,通过设置widgetLargestAvailableDisplayMode属性可以让Widget程序实现展开布局。如下:
2. 重写切换展开及折叠布局时的方法(iOS10之后)
4.*重点
扩展程序一般都不是脱离宿主程序单独运行的,难免需要和宿主程序进行数据交互。而相对于一般的APP,数据可以用单例,NSUserDefault等等。但由于拓展与宿主应用是两个完全独立的App,并且iOS应用基于沙盒的形式限制,所以一般的共享数据方法都是实现不了数据共享,这里就需要使用App Groups。
在宿主程序和扩展程序中分别设置打开App Group,设置一个group的名称,这里要保证宿主APP和扩展APP的groupName要是相同的。
存取方法如下:
注:学习出处http://mp.weixin.qq.com/s?__biz=MzIwOTQ3NzU0Mw==&mid=2247484081&idx=1&sn=bf750333a04d24547a09aea745cbaaee&chksm=97720879a005816f8014d4af74d1c06d54b3eee32135c0dd175a6363bfede5e0f6b39ffa755c&scene=0#rd