iOS14Widget小组件
背景
- 大民哥带给你京南
互联网大厂千万级日活项目
中iOS14Widget(小组件)
实战经验分享,玩转iOS14及以上的Widget这一篇文章就够了。 - 我们最关心的:
Widget是如何处理数据刷新的?
Widget什么时候网络请求?
Widget与主App之间如何信息共享、如何通信?
主App如何控制Widget数据刷新?
WidgetKit、SwiftUI使用注意事项?
Widget与主App之间用户交互注意事项?
- 根据业界的调研,一般人
每天看手机屏幕在90次以上
,大部分是为了浏览自己的数据,而每次浏览不过数秒
,如果一个app启动缓慢或者看到的是满屏菊花,那这样的App估计要在冷宫了。还有我们浏览个人的数据可能就不怎么想打开App,比如看自己买的股票、基金走势,或看圈里自己发布的东西评论 等等简明扼要的内容。为满足这部分不想打开App也想看到部分内容的用户需求
,Apple的Widget诞生了。
前景
Widget非常适合移动终端,移动终端屏幕相对较小,打开APP却占用了有限的屏幕资源,导致手机上网用户体验较差。Widget不仅可以独立于APP运行,有效地利用手机屏幕,而且可以更加快速直接方便地访问移动互联网。 Widget给手机用户带来良好的呈现方式和互联网体验,可提升流量的转化。
屏幕多元化
独立于App运行
直观体验好
待开发潜力大
提升流量转化
准备
基础
iOS14的Widget开发需要有以下相关基础,
Swift
SwiftUI
WidgetKit
因为WidgetExtension 使用的是新的WidgetKit不同于Today Widget,它只能使用SwiftUI进行开发,所以需要SwiftUI和Swift基础。
Apple官方已经弃用Today Extension,Xcode12已经不再提供Today Extension的添加,已经有Today Widget的应用则会显示到一个特定的区域进行展示。
认识
iOS中的Widget目前只支持三种尺寸样式:
屏幕尺寸
小-systemSmall(pt) | 中-systemMedium(pt) | 大-systemLarge(pt) | |
---|---|---|---|
414x896pt (XR/XsMax/11/12/13/所有 ProMax) | 169x169 | 360x169 | 360x379 |
375x812 pt (X/Xs/所有 Pro) | 155x155 | 329x155 | 329x345 |
414x736 pt (6p/6sp/7p) | 159x159 | 348x159 | 348x357 |
375x667 pt (6/6s/7/8) | 148x148 | 321x148 | 321x324 |
320x568 pt (5/5s/SE) | 141x141 | 292x141 | 292x311 |
样式
systemSmall(2x2)
、systemMedium(4x2)
、systemLarge(4x4)
Widget流程
创建Widget
- Xcode的File -> New -> Target -> Widget Extension
- 命名根据公司项目命名规范即可
- 如果Widget需要支持用户配置的话,命名完需要勾选下面的
Include Configuration Intent
- ⚠️:如果一个widget在版本1不支持用户配置,但版本2突然需要版本配置,app在覆盖安装的时候widget不会生效,实践经验所得,4x4的Large尺寸的widget,最好一开始就创建可用户配置,否则后续需要用户配置的版本迭代,用户需要主动重启手机才有效
OC主工程混编Swift
注意