[Swift]Widget制作-iOS TodayView Extension

[Swift]Widget制作-iOS TodayView Extension,第1张

在需要添加 TodayView Extension 的工程里,点击菜单 File >New >Target... ,然后选择 iOS 中的 Application Extension 中的 Today Extension

接下来给 target 命名就可以了等常规设置就可以了

如果没有设置Bottom Layout Guide等相关的Constraint(也就是没有主view相关的约束),view的intrinsic content会跟屏幕分辨率一样

应用扩展程序会增加您的影响力

通过应用扩展程序,您可以将自定义功能和内容扩展到应用之外,并在用户与其他应用或系统进行交互时将其提供给用户。

您可以创建应用程序扩展以启用特定任务。例如,要让用户从Web浏览器发布到您的社交服务,您可以提供共享扩展。或者,为了让用户了解自己喜欢的团队,您可以提供一个今日窗口小部件,在通知中心显示当前的体育比分。您甚至可以创建一个应用程序扩展,提供用户可以使用的自定义键盘来代替iOS系统键盘。

主要对App Extension进行介绍。请继续往下看:

官方给的说法是:App Extension可以让你扩展你的APP的自定义功能和内容,使用户可以在与其他应用或者系统进行互动的时候去使用它。翻译的不一定准确,这样说可能会好理解:我们平时看到的Widget、微信和QQ的share等等,都是App Extension,下图是一些例子:

其实就是我们经常看到的Widget,但是Widget只是Today Extension,除了Today Extension,还有很多。

一个支持扩展的系统区域叫做一个extension point(扩展点)。每个扩展点的扩展都有自己独有的使用方法和API。你可以根据你的需求来选择不同的扩展。官方API里面提出了一个名词叫:Host app,我们可以把它理解为宿主的App也就是提供应用扩展界面显示或者功能的App。还有一个container app,我们可以把它理解为容器App,就像上图的微信share extension,容器app就是微信。

扩展和app不同,扩展无法单独上架AppStore。尽管你必须使用个app来包含并且分发你的extension,extension也是一个单独的二进制文件,独立于用于传递和分发的container app。

你可以通过File--->New --->Target来创建Extension,它和其他的target一样,它和你的app project组合成为一个产品。

一个app可以有一个扩展,也可以有多个扩展。最好的创建扩展的方式就是通过Xcode提供的Extension种类选择自己需要的来创建,里面包含了必要的API以及方法实现。

如果你想让用户去使用你的扩展,那么就需要把你的containing app发布到AppStore,当用户安装了你的Containing app,扩展也就安装了。不同的扩展启动的方式也不一样,例如Today Extension,你需要Widget来展示到你的通知中心。扩展也不要乱用,扩展的最佳用户体验从来都是希望用户 *** 作更精简、更快速,并且专注于单个任务。

我们可以在Xcode的File--->New--->Target里面看到不同平台的Extension,包括iOS、watchOS、tvOS、macOS等等。这里主要介绍iOS,主要包括以下几种Extensions:

1.Action Extension:动作扩展,在另一个应用程序的上下文中 *** 作或者查看内容

2.Audio Unit Extension:音频单元扩展

3.Broadcast UI Extension:广播UI 扩展

4.Broadcast Upload Extension:广播上传扩展

5.Call Directory Extension:呼叫目录扩展

6.Content Blocker Extension:内容拦截器扩展

7.Custom Keyboard Extension:键盘扩展,例如第三方的键盘,搜狗输入法,百度输入法等。

8.iMessage Extension:消息的扩展

9.Intents Extension:Intents扩展

10.Intents UI Extension:Intents UI扩展

11.Notification Content Extension:通知内容扩展

12.Notification Service Extension:通知服务扩展

13.Photo Editing Extension:图片编辑扩展,在照片app中编辑照片或者视频

14.Share Extension:分享扩展,发布一个共享网站或者与其他应用共享内容。

15.Shared Links Extension:分享链接扩展

16.Spotlight Index Extension:Spotlight 索引扩展

17.Sticker Pack Extension:贴纸包扩展

18.Today Extension:Today扩展,可以快速获取更新或者在通知中心的近日视图中执行一项快速任务。

应用扩展程序与应用程序不同。虽然您必须使用应用程序来包含和传递扩展,但每个扩展都是一个独立的二进制文件,它独立于用于传递扩展的应用程序而运行。

您可以通过向应用添加新 target 来创建应用扩展程序。与任何Target一样,扩展Target指定组合在应用项目中构建产品的设置和文件。您可以向单个应用添加多个扩展Target(包含一个或多个扩展 的应用 称为 包含应用 )。

开始开发应用扩展程序的最佳方法是使用Xcode为两个平台上的每个扩展点提供的模板之一。每个模板都包含特定于扩展点的实现文件和设置,并生成一个单独的二进制文件,该二进制文件将添加到包含应用程序的包中。

要向用户分发应用扩展程序,请将包含应用程序提交到App Store。当用户安装包含应用程序时,还会安装其包含的扩展程序。

安装应用扩展程序后,用户必须采取措施才能启用它。通常,用户可以在其当前任务的上下文中启用扩展。例如,如果您的扩展程序是“今日”窗口小部件,则用户可以编辑“通知中心”中的“今日”视图以启用扩展程序。在其他情况下,用户可以使用“设置”(在iOS中)或“系统偏好设置”(在macOS中)来启用和管理他们安装的扩展程序。

虽然每种类型的应用扩展程序都支持不同类型的任务,但是大多数扩展程序都有一些用户体验部分。在考虑设计扩展时,了解所选扩展点的用户体验非常重要。从较高的层面来说,所有扩展的最佳用户体验都是快速,简化并专注于单个任务。

用户通过与某些系统提供的用户界面(UI)交互来打开您的应用扩展程序。例如,用户通过激活应用程序中系统提供的“共享”按钮并从显示的列表中选择扩展名来访问“共享”扩展。

虽然大多数应用扩展程序至少提供了一些自定义UI元素,但用户在输入扩展程序之前不会看到自定义用户界面。当用户输入您的扩展程序时,您的自定义用户界面可以帮助向他们展示他们正在转移到新的上下文中。由于用户可以将您的扩展程序与当前应用程序区分开来,因此他们可以欣赏您提供的独特功能。用户将扩展意识视为单独的实体也意味着他们可以识别和删除行为不当或效果不佳的扩展。

为了让用户顺利过渡到您的应用扩展程序,您通常希望平衡自定义设计与与扩展点关联的UI。例如,最好让您的小部件看起来像今天视图中所属的小部件。同样,在您的照片编辑扩展程序中,它可以很好地创建与iOS中的照片协调的UI。

注意

即使您的应用扩展程序未显示任何自定义用户界面(图标除外),用户仍然了解您的扩展程序与当前应用程序不同,因为他们采取了特定 *** 作来激活它。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11183935.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存