iOS14 小组件 开发1

前言:小组件的开发和我们正常情况开发App的逻辑是一样的,正常情况分为:网络请求,数据模型,view,渲染.只不过是小组件的开发使用了 swiftUI 语言来编写,所以要对SwiftUI的空间有所了解.

好!那我们接下来开始我们的小组件开发吧.

首先,创建Widget Extension

然后选择证书,起个名字.然后左侧的文件列表底部会出现一个文件夹

这个就是我们的小组件啦!现在可以直接运行了.系统默认显示的一个时间View

然后我们接下来逐一认识小组件的内部结构.首先找到程序执行的入口

@main:代表着Widget的主入口,系统从这里加载

kind:是Widget的唯一标识

StaticConfiguration:初始化配置代码

configurationDisplayName:添加编辑界面展示的标题

description:添加编辑界面展示的描述内容

supportedFamilies这里可以限制要提供三个样式中的哪几个

然后我们再来看,下一个Provider

Provider:为小组件展示提供一切必要信息的结构体,实现TimelineProvider协议

placeholder:提供一个默认的视图,当网络数据请求失败或者其他一些异常的时候,用于展示

getSnapshot:为了在小部件库中显示小部件,WidgetKit要求提供者提供预览快照,在组件的添加页面可以看到效果

getTimeline:在这个方法内可以进行网络请求,拿到的数据保存在对应的entry中,调用

作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这里有一个iOS交流裙:[891488181]不管你是大牛还是小白都欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 大家一起交流学习成长!

completion之后会到刷新小组件
其中红圈里面的东西,是用来保存数据接下来我们会说到,之所以把它圈住,是因为这个坑我掉里面了,卧槽!

我们先来这里面的Poetry这个对象: 这个就是我们请求数据模型对象

看完模型,接下来就是数据请求了

模型,数据说完了 那接下来就是数据请求了:现在我们再来到 PoetryProvider 中的getTimeline 方法处:

首先记录一下,数据第一次加载的时间,然后我们要让小组件基于这个时间点,来定时刷新数据. 这里重点记录一下,注意每个方法返回的数据格式 很重要!!!,我掉里面的好多次,上面红圈那个就是这个原因.

好到这里之后,我们的数据请求下来,时间也定下来了,但是没地方放啊,这个储存数据的位置,就是 PoetryEntry

这个也是个数据模型,只不过这个是系统需要的Model.里面有时间点和数据,当然你也可以添加一些自己需要的另外的字段.

那我们拿到数据 接下来就是 View了

里面的空间都是SwiftUI的空间,这个需要了解一下,但是我还不是很熟悉.

接下来就是 把数据 ,view, 时间线 回传啦,回传给我们的程序入口那里.

第一个小组件已经完成啦,运行一下吧!

参考文章: www.jianshu.com/p/55dce7a52…

作者:树下
链接:https://juejin.im/post/6875914285634027534

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/47051.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android-为应用添加widget小组件

最近在实现为应用程序添加小组件的功能,记录一下开发过程。 1.添加一个小组件模板 设置组件类名称,其他属性按需求设置,这些属性在生成的文件中也可修改 ​​​​​​ 工程main目录下会生成类文件,res目录下生成资源文件&#x…

iOS 15 新增多个实用小组件

iOS 14 上线加入的桌面小组件功能非常受欢迎,因此苹果iOS 15新系统对小组件功能进行深度优化,并加入了多个实用又有趣的小组件。用户可以简单通过上下滑动来选择、重新排列、智能堆栈小组件,也可以对它们进行删除、智能旋转,还可以…

Widget小组件

目录 技能点 Widget背调 a. 设计定位 b. Widget小组件限制 c. Widget小组件 开发须知 d. 什么是 SwiftUI App Group 数据共享 a. 配置 App Groups 1、开发者账号配置,并更新pp证书 2、Xcode配置 b. 缓存数据共享-代码实现 1、文件存储 2. 沙盒存储&…

iOS_小组件widget基本功能

创建 在当前工程里新建target 选择Today Extension 独立应用 widget虽做为应用的扩展, 但却是两个完全独立的应用 widget上线需要单独申请 AppID 和 Bundle Identifier , 需要配置 证书 和 Provisioning Profiles(配置文件) 第三方pod导入, 也的重新导入一份 target MMWidg…

iOS 14-Widget小组件2—实现

Widget 实现 认识与配置实现效果图支持显示方式交互数据共享刷新策略网络加载屏幕适配支持多个小部件布局例子源码其他问题参考认识与配置 上一篇文章已经做了比较详细的介绍与创建配置iOS 14-Widget小组件1—初识 实现效果图 支持显示方式 @main 入口添加.supportedFamilie…

自定义开发苹果手机显示汽车小组件

实时获取汽车数据信息实时获取汽车定位信息(点击地址进入高德)显示当前位置的天气情况可定制显示当前城市是否限行可定制当前城市油价信息实时刷新最新数据 感兴趣的可以私聊加群

iOS 小组件 widget

苹果官网文档(apple developer)widgetkit 文章目录 1.创建小组件2.编辑小组件3.数据共享4.拖动排序5.参考链接 1.创建小组件 File -> New -> Target 搜索widget,点击next 勾上Include Configuration Intent, 表示需要编辑小组件,点击f…

iOS 小组件 widget 编辑小组件

返回小组件专栏:iOS 小组件 widget 文章目录 1.编辑小组件2.intentHandler 1.编辑小组件 如下图,编辑小组件,需要在GirlWidget.intentdefinition中配置 点击右下角的加号,新建一个枚举类型 枚举类型改名MyEnum,并添加三个值 …

iOS 小组件开发

iOS14之后Apple引入了新的WidgetKit,舍弃了原有额TodayExtension。 开发准备: 新的WidgetExtension只能通过SwiftUI进行开发; Widget有三种尺寸:systemSmall、 systemMedium、systemLarge,三种尺寸对应固定的UI类型布…

iOS 小组件 widget group id, app group, 数据共享

返回小组件专栏:iOS 小组件 widget 主APP, 小组件, 小组件的intent是三个独立的target, 需要有三个bundle id和对应的配置文件。而且他们的bundle identifier是从属关系。小组件的bundle id必须以主app的bundle id作为前缀。比如主app的为“com.test”&a…

演讲实录:指标平台+AI 的技术落地和未来展望

7月14日,以“释放数智生产力”为主题的 Kyligence 用户大会在上海成功举行。大会现场发布了 Kyligence 最新产品家族:AI 数智助理——Kyligence Copilot 的预览版、一站式指标平台 Kyligence Zen 的 Cloud 和 Enterprise 版本,以及企业级 OLA…

程序员坐行李箱迎寒风编码 2 小时,目击者:激励我写了一篇论文!

整理 | 朱珂欣 出品 | CSDN程序人生(ID:coder_life) 对于很多程序员而言,工作三连无疑就是——“查 bug、改 bug 、写 bug ”。 程序员加班的话题,也早已经不足为奇,实际上除了办公室,地铁站…

解决Windows update medic service服务禁用不了拒绝访问

很多小伙伴发现禁用Windows update服务后没几天又自动开启,无法禁用自动更新就是因为Windows update medic service服务导致,但是在禁用Windows update medic service服务的时候又出现拒绝访问,如下 解决方法: 方法一&#xff1…

Windows10禁止更新中关于Windows Update Medic Service拒绝访问的问题

1.首先以管理员身份运行cmd输入 REG add "HKLM\SYSTEM\CurrentControlSet\Services\WaaSMedicSvc" /v "Start" /t REG_DWORD /d "4" /f 这一步已经将Windows Update Medic Service禁用了,但是还能恢复 2.运行“regedit”&#xff0…

windows任务计划程序拒绝访问

问题现象:在windows任务计划程序中添加脚本程序,执行相应脚本,报了拒绝访问和创建目录需要输入参数问题 问题分析:没有权限执行脚本 问题解决:除了填写相应位置的脚本之外,还需要填写起始于的脚本所在路径…

windowsupdate拒绝访问怎么解决?

很多的小伙伴在开机电脑的时候都遇到过提示windowsupdate拒绝访问那么该怎么办呢?下面小编就为你们带来了windowsupdate拒绝访问解决方法,快来一起看看吧。 windowsupdate拒绝访问怎么解决? 1、右击左下角开始点击“运行”。 2、随后在输入栏…

更改操作系统密码导致vcenter访问出现503问题,已经如何正确更改vcenter操作系统密码

1、问题出现原因:vcenter 虚拟机cpu占用过高导致卡顿,想扩容cpu,需要关闭vcenter虚拟机,等扩容完启动的时候发现vcenter已启动,但页面访问出现503错误。 2、思路分析:503错误基本原因都是因为vpxd服务没有…

Windows10/11在使用微软账号登录后无法远程桌面

Windows10/11在使用微软账号登录后无法远程桌面 问题现象: 微软远程桌面在输入用户名密码点击”连接后”报”之前用于连接到的凭据无法工作 请输入新的凭据”的错误。 新安装的电脑开启远程桌面登录正常,但在启用微软账号后就无法登录,提示…

NVIDIA控制面板拒绝访问解决方法教学

NVIDIA控制面板拒绝访问解决方法教学分享。有用户开启英伟达显卡控制面板进行相关设置调整的时候,遇到了问题,面板提示拒绝访问。那么是什么原因导致出现这样的问题呢?接下来我们一起来看看以下的解决方法吧。 解决方法: 1、出现这…

Windows Update Medic Service拒绝访问问题

1.首先以管理员身份运行cmd输入 REG add “HKLM\SYSTEM\CurrentControlSet\Services\WaaSMedicSvc” /v “Start” /t REG_DWORD /d “4” /f 这一步已经将Windows Update Medic Service禁用了,但是还能恢复 2.运行“regedit”,打开注册表编辑器&#…