Today Widget介绍

本文详细介绍了iOS的Today Widget,作为App Extension的一种,它在用户下拉时展示信息,如天气、股票等。Today Widget的生命周期包括开始、执行任务和终止。扩展与包含APP、宿主APP之间有明确的关系,它们运行在独立进程中。开发限制包括不能使用UIApplication、部分API和框架,以及限制长时间后台任务。更新Widget状态需实现NCWidgetProviding协议,同时可以通过NSTimer实现定时更新。文中还讨论了如何从Widget跳转到主应用、数据共享以及实现细节。
摘要由CSDN通过智能技术生成

简介:Today Widget是App Extension的一种,作用是用户在使用iOS或者Mac OS下拉功能时,能够刷新显示一些用户关心的消息,比如看天气状况,查看股票行情,而且Today Widget能实现一些很小的功能,其实可以把他看成是一个阉割版的APP,一个运行在独立进程中的ViewController。

回到Today Widget的讨论中,我们先来看看Today Widget的生命周期:
1、开始 :在用户通过host app点击extension时,系统就会实例化extension应用,这是生命周期的开始。
2、执行任务 :在extension启动以后,开始执行它的使命。
3、终止 :在用户取消任务,或者任务执行结束,或者开启了一个长时后台任务时,系统会将其杀掉。
由此可见,extension就是为了任务而生!
附上一幅图更加详细的描述这一过程:
这里写图片描述

那到底是谁在控制着Today Widget呢?
我们接着来看一幅图:
这里写图片描述

上面那副图提到的三者到底是哪三者呢?那就是App Extension、Containing App和Host App,这里解释一下这三者:
1、App Extension:我们现在讨论的Today Widget就是App Extension的一种,还有其他几种也顺便说一下,请看下图,包含名称作用适用情形:
这里写图片描述
翻译出来就是:
Today(“今天”又称为Widget):可以快速获取更新或者在通知中心的今日视图中执行一项快速任务。
Share(共享):发布到一个共享网站或者与其它应用程序共享内容。
Action(动作):在另一个应用程序的上下文中操作或查看内容。
Photo Editing【照片编辑(仅限于iOS)】:在照片应用程序中编辑照片或视频。
Finder【查找器(仅限于iOS)】:在查找器中直接显示文件同步的状态信息。
Document Provider【文档提供程序(仅限于iOS)】:提供对文件库的访问和管理。
Custom KeyBoard【自定义键盘(仅限于iOS)】:用自定义键盘替代iOS系统键盘,并用于所有的应用程序中。
2、Containing App:字面意思是包含的APP,我们很容易想到我们的App Extension 就是由它产生出来的,但是这样说并不确切。当我们启动Containing App时,Extension也会启动,但是extensions cannot be stand alone apps.也就是说像Today Widget这种Extension并不是一个独立的APP,而需要依附在Containing App中。再看看这几句:
When an extension is running, it doesn’t run in the same process as the container app. Every instance of your extension runs as its own process.当一个Extension启动之后,它是运行在自己的进程中,它并不是Containing App的子进程,但是当Containing App被用户卸载之后,App Extension 自然也就不存在了。
*3、Host App:我们可以理解成调用Extension的APP,比如当我们编写了一个Today Widget运行起来的时候,Today App就是一个Host App,它和Extension的交互比Extension与Containing App的交互更直接,extension和host app之间可以通过extensionContext属性直接通信:

@interface UIViewController(NSExtensionAdditions) <NSExtensionRequestHandling>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值