iOS 中 Widget 的实现 | 实战系列

2018-11-293357

记得有一天上班的时候,我还沉迷于学习之中,突然被人从背后拍了一下,转头一看,测试来了,脑子不由自主的变成F35的发动机一样开始快速运转,并且罗列出了即将要跟我对话的内容,"小宝,这个功能有bug啊","小宝,这个需求没有实现喂","小宝,你先把基础流程跑一遍再给我吧",接着测试凑近身边,把他的苹果手机打开后,往右滑动到天气预报界面展示给我看,然后面带微笑的问我:”小宝,这个功能是什么呀?“ ,原来不是app出现了问题,顿时我松了一口气,接过话茬道:“嗯…,这个就是一个展示用的东西啊”,毕竟这个我也不太清楚,稍微敷衍一下测试,“我感觉挺好玩的啊,我们也可以做成这样吗?”测试饶有兴趣的说着,我心里一想,这个我也没做过啊,我怎么知道?不过存在即合理,官方肯定有这个文档,去看看就好了。随即答道:“小意思~你回去坐吧,等我做一个给你看看是不是你想要的功能“,测试一听,高兴的不得了:“好嘞~”。

widget介绍 既然夸下海口,那就要把它搞定才行。立马搜索文档,找了一下关于类似显示在最左边的天气预报的界面及功能,官网是这样解释的:

A widget is an extension that displays a small amount of timely, useful information or app-specific functionality. For example, the News widget shows top headlines. Calendar provides two widgets, one that shows today’s events and one that shows what’s up next. Notes lets you preview recent notes and quickly create new notes, reminders, photos, and drawings. Widgets are highly customizable and can contain buttons, text, layout customizations, images, and more.

原来这个界面专有名词叫 Widget,是一个窗口小部件的拓展,可显示少量的,有用的信息,属于app中的一个特定功能。既然作为app的一部分,那咱们就开始动手把它实现出来。

第一步,创建文件,布局 翻阅了官方文档,使用说明真的言简意赅,不过界面的实现还是很简单,新建一个 target ,File -> New ->target,只需要像平常一样,在里面写入布局代码,这里不做熬述,相信做 iOS 开发都会画画~。主要难点在于 Widget 证书的配置上,没有这个只能孤零零在模拟器上存在,只有给他配置好证书,才能在真机上展示。

第二步 配置证书 官方文档上配置证书的描述是这样的:

NOTE

You must code sign your containing app and its contained app extensions.

All the targets in your Xcode project must be code signed in the same way. For example, during testing you can employ ad hoc code signing or use your developer certificate, but must use the same approach for all the targets in your project. For submission to the App Store, use your distribution certificate for all the targets.

教程内容很少,还是自己一步一步动手摸索一下。

登陆苹果开发者中心 登陆之后打开证书配置,在 APP Group 里增加一个 id,id的前缀必须以group开头,不然不会生效,当然也不会报错。

填好后返回 app IDs 里,找到工程对应的 appID,点击 Edit

接着在这里添加 App Groups 文件,命名可以参考我填写的内容格式

选中刚才添加的 App Group ,然后保存起来,来到这里

添加一个开发证书,选中刚才的APP ID,弄好后,下载下来

然后在这里开启App Gruops功能,选中刚才我们创建的App Gruops文件 第三步 到这里我们的工程文件配置已经完成了一半。

widget的上线也是需要单独申请APP ID的 需要配置证书和Provisioning Profiles文件!

所以我们还要对我们创建的taget进行证书配置。

首先先创建taget

然后去配置证书,给 taget 重新配置一个APP ID

同时也要添加App Gruops,添加的文件要跟上面的一模一样

接下来也要重新配置一个开发证书给taget,然后选择刚才配置的证书

回到工程里,给 taget 也开启 App Gruops 功能,选中最开始我们创建的 App Gruop

返回看看,没什么问题了,运行一遍

Widget 作为一个 app 的小窗口,虽然能展示的信息不多,但是却可以把一些重要,即时的信息提前显示出来,方便用户浏览一些重要而不杂碎的内容,同时这也是 iOS 区别于 Android 的独有设计之一。

分享
点赞1
打赏
下一篇:Realm 的使用