从开发者的角度,可以把widget理解为另外一个app,在项目中是以另一个target的形式存在的。
添加widget整体的流程:
(1)在苹果官网增加App IDs
(2)在苹果官网增加App Groups
(3)新增provisioning profiles,下载并安装
(4)在已有的项目中,新建一个target--Today Extension
(5)如果不用storyboard,在Widget的info.plist中配置为VC来描述显示样式NSExtension-- NSExtensionPrincipalClass:TodayViewController(TodayViewController可以是自定义的VC)
(6)给已有的项目新增一个URL Type用于点击跳转和交互行为区分
(7)分别选中已有项目和widget的target,在capabilities中,打开 App Groups,并勾选(2)中创建的App Group,这样widget和已有项目就能有一个数据共享空间了,产品不是要根据单个用户定制化显示内容么?拿去生活!!!
(8)想让widget中的文件也能用第三方的库类?
(8.1)pod管理的:在xcode中,选中项目管理文件AppName.xcodeproj--右边选择project文件--info中,Configurations,展开debug和release,在widget对应的target后面选择对应的pod配置文件;
(8.2)手动添加的和自己自定义的类:这个目前没有找到好的方法,只能选中需要的.m文件,手动添加了。(有人说可以打包成一个framework,好处是不用一个个选,但是如果要需要的.m文件经常变动,建议不加到framework中,不然每次改了都要重新打包成framework)
(9)适配iOS 10 以下的系统
网友评论