iOS Widget

前言

iOS extension的出现,方便了用户查看应用的服务,比如用户可以在Today的widgets中查看应用的简略信息,然后点击进入相关的应用界面。  
本次将依次从以下几个问题着手,进行详细说明:
1、如何为现有的工程添加widget;
2、如何绘制UI;
3、如何调起app;
4、如何与host app共享数据。 
5、
证书配置
6、
通过cocoapods,在Widget里添加第三方 

讲解
1.
如何为现有的工程添加widget:添加Today Extension就是添加一个target,不必废话。
2.
如何绘制UI
   
我是个代码控(装B一下),习惯用纯代码来绘制Today的UI,可是为了开发方便习惯Xib和代码共用。
iOS Widget 
删除默认创建的MainInterface.storyboard,并上图所示修改Info.plist文件。 接下来就是案例:
iOS Widget 

3、如何调起app
因为extension和containing app是两个完全独立的进程,所以它们之间不能直接通信(不能像应用内部点击按钮,跳转到指定页面)。为了实现widget调起app,这里通过openURL的方式来启动containing app。 
iOS Widget 
iOS Widget 
iOS Widget 
接着谈
widget调起app,并且跳转到指定页面:
 iOS Widget
iOS Widget 
iOS Widget 
  
4、如何与host app共享数据
通过App Groups提供的同一group内app共同读写区域,可以用NSUserDefaults和NSFileManager两种方式实现extension和containing app之间的数据共享。
iOS Widget 
 
iOS Widget 
 5、
证书配置 
widget的上线也是需要单独申请APP ID的 需要配置证书和Provisioning Profiles文件 

6、通过cocoapods,在Widget里添加第三方 
iOS Widget 
 

最后几张项目图和效果图:
 iOS Widget iOS Widget