当前位置: 首页 > news >正文

探索App Intents:让你的应用与Siri无缝互动的新方式

苹果推出了一个新框架——App Intents,使开发者可以在iOS 18.2+、macOS 15.2+等平台上集成Siri和Apple Intelligence,实现对应用内容的读取和操作。

App Intents使应用的功能和内容能无缝融入系统体验中,例如Siri、Spotlight搜索、快捷指令和小组件,让用户可以轻松访问应用核心功能,并获得更智能的Siri帮助。

使用 App Intents 的主要功能

  • 通过 Siri 直接控制应用:用户可以对 Siri 发出指令,例如“查找我的航班”或“添加待办事项”,Siri直接与应用交互。
  • 应用内容出现在 Spotlight 中:用户可在 Spotlight 搜索到应用中的内容,避免打开应用。
  • 支持快捷指令和自动化:用户可以创建快捷指令以自动执行特定操作。
  • 通过硬件按钮触发操作:支持通过iPhone或Apple Watch按钮启动特定功能。
alt

App Intents 的基本组件

  1. App Intent(应用意图):定义用户可以触发的具体操作,如“打开文档”或“发送消息”,供Siri、快捷指令或Spotlight调用。
  2. App Entity(应用实体):表示应用内容,如照片、联系人或文件。定义后,用户可通过Siri或Spotlight搜索并访问这些内容。
  3. App Enum(应用选项):定义选项集合,例如任务状态或相册分类,帮助Siri理解请求内容的上下文。

快捷指令和自动化功能

App Intents支持通过快捷指令设置自动化操作。例如,用户可设置“早上好”快捷指令,让Siri在早晨自动打开新闻应用并显示当天新闻。

硬件交互支持

App Intents支持在iPhone和Apple Watch的物理按钮上设置快捷方式,如“一键打开相机”或“启动健身追踪”。

实际应用场景示例

假设开发一款旅行助手应用:

  • 查询航班信息:定义“查看航班”操作,用户可通过Siri获取航班详情。
  • Spotlight 搜索支持:用户无需打开应用即可在Spotlight中找到航班信息。
  • 快捷指令支持:设置“出差模式”快捷指令,点击后可自动显示天气、航班和酒店信息。
  • Apple Watch 操作按钮:设置Apple Watch按钮,快速访问航班或行程信息。
alt

应用内容与 Siri 和 Apple Intelligence 的互动

新API允许用户在应用中查看内容时,通过Siri获取相关信息或执行操作。例如,在阅读文档时,用户可以问Siri“这份文件的主要内容是什么?” Siri会根据内容结构回答问题。

场景示例

  • 文档阅读应用:用户可以让Siri总结报告的结论。
  • 邮件客户端:Siri可为用户概述长邮件的内容。

这种集成提升了用户体验,Siri可以更直观地查询、获取内容信息并执行操作。

实现方法

开发者通过 AppEntity 定义应用内容,并与 NSUserActivity 关联,使系统可以识别这些内容。AppEntity还需符合 Transferable 协议,以支持多种内容格式(如纯文本、PDF、图片等),方便Siri在不同情境下使用内容。

alt

集成操作至 Siri 和 Apple Intelligence

苹果提供了多种助手架构(Assistant Schema),让开发者可为不同内容类型创建适合的Siri响应。例如:

  • 浏览器架构:开发者可使用 .browser.tab,用户可以询问Siri有关网页的内容。
  • 文件管理架构:文件管理应用使用 .files.file,用户可让Siri总结文件内容。
  • 照片架构:照片应用使用 .photos.asset,用户可以让Siri描述照片内容。

这些架构帮助Siri识别并理解不同类型内容请求,提供上下文相关的智能回复。

助手架构(Assistant Schema)简介

助手架构是一组标准化模板,帮助Siri识别应用功能。例如,对于图片管理应用,photos.openAsset架构可以帮助Siri理解展示照片的指令。

关键组件

  • AppIntent:定义用户通过Siri触发的功能(如打开照片)。
  • AppEntity:表示应用中特定内容(如照片或文件)。
  • AppEnum:定义选项(如图片分类)。

如何集成 Siri 和 Apple Intelligence

开发者可按以下步骤创建符合架构的意图:

  1. 确定功能领域:为每个意图指定内容领域(如照片、文件)。
  2. 创建新的Swift文件:选择适用的架构(如 photos_)。
  3. 使用宏:添加 @AssistantIntent(schema:) 宏来定义功能。
  4. 构建和调试:编译代码,确保没有架构不匹配的错误。

开发者还需确保选项和内容符合架构规范,例如照片应用中定义照片实体和分类选项,以便Siri识别并处理。

更新和迁移意图

如需更新现有意图,可设置 isAssistantOnly = true,让新意图仅供Siri识别,避免影响用户的快捷指令。

通过集成Siri和Apple Intelligence,应用操作更加自动化。开发者仅需定义符合要求的操作和内容,即可提升用户的智能化、便捷化体验。

本文由 mdnice 多平台发布

相关文章:

探索App Intents:让你的应用与Siri无缝互动的新方式

苹果推出了一个新框架——App Intents,使开发者可以在iOS 18.2、macOS 15.2等平台上集成Siri和Apple Intelligence,实现对应用内容的读取和操作。 App Intents使应用的功能和内容能无缝融入系统体验中,例如Siri、Spotlight搜索、快捷指令和小…...

冒泡排序法

编写程序实现冒泡排序。 相关知识 为了完成本关任务,要了解冒泡法排序的算法思想: 对所有相邻记录的关键字值进行比较,如果是逆序则将其交换,最终达到有序化,其处理过程为: 将整个待排序的记录序列划分成…...

MATLAB 将fig格式另存为可编辑的eps格式,但乱码问题解决

fig格式图像正常,但通过手动导出后的eps格式图像导入到AI中会乱码,如下图所示 一、主要问题应该是: 文件名中的字符和格式受到了操作系统和文件系统的限制,具体而言是 figure 的Name 属性中包含了特殊字体或字符(如逗号&#xff…...

Hadoop:单节点配置YARN

目录 一、Hadoop YARN介绍 二、单节点配置YARN 2.1 配置yarn-site.xml 文件 2.2 配置 mapred-site.xml 文件 2.3 启动 Hadoop 和 YARN 2.4 浏览器访问 三、YARN的常用命令 3.1 启动和停止 YARN 3.2 查看和管理应用程序 3.3 查看和管理节点 3.4 查看和管理队列 3.5 …...

【前端】Svelte:组件间通信

在 Svelte 中,组件间的通信主要通过 props 和事件机制来实现。父组件可以向子组件传递数据,子组件也可以通过事件将信息反馈给父组件。在本教程中,我们将深入了解 Svelte 的组件通信机制,包括 props 和事件的使用方法、事件监听、…...

数学建模-----假设性检验引入+三个经典应用场景(三种不同的假设性检验类型)

文章目录 1.假设检验的过程1.1问题的提出1.2证据的引入1.4做出结论 2.案例二:汽车引擎排放2.1进行假设2.2假设检验的类型2.3抽样分布的类型2.4单尾(双尾)检验2.5t检验 3.案例三:特鲁普效应3.1统计显著和效果显著3.2心理学现象3.3进…...

Unity——对RectTransform进行操作

文章目录 前言在Unity中对RectTransform进行操作是处理UI布局和动画的关键部分。下面是一些常见的操作及其代码示例,可以帮助你在脚本中灵活地控制UI元素的位置、大小和锚点。 一、获取和设置位置二、获取和设置大小1.设置大小(Size Delta) 三…...

使用jmeter查询项目数据库信息,保存至本地txt或excel文件1108

知识点1:使用jmeter把项目数据库的数据导出,并使用jmeter导出数据库的数据 步骤1:使用jmeter把项目数据库的数据导出 (1)测试计划-添加- 线程组setUp线程组 setUp线程组:添加-配置元件-JDBC Connection …...

ubuntu 22.04 server 安装 mysql 5.7.40 更改 datadir 目录 LTS

ubuntu 22.04 server 安装 mysql 5.7.40 更改 datadir 目录 LTS 参考 ubuntu 22.04 server 安装 mysql 5.7.40 LTS https://blog.csdn.net/wowocpp/article/details/143564015 vip Ubuntu中修改MySQL5.7数据存储路径 https://www.cnblogs.com/jiaojiner/p/15236639.html u…...

网站架构知识之Ansible进阶2(day023)

1.include文件 应用场景: 1个ansible剧本内容过多,涉及到多个play(- host:web),可读性变弱,不方便调试。 于是人们想出把单个大的剧本拆分为多个小的剧本, 多个小的剧本可以通过include功能合并使用。 使用方法,书写好对应的剧本文件&#…...

Java 中的 Function:让转换逻辑更灵活

文章目录 1. Function 基础:简化转换逻辑2. 组合 Function:实现多步转换3. 配合 Stream 使用:简化数据转换4. 自定义 Function,封装复杂转换5. 使用 identity() 提供默认转换6. 结合 Optional,实现动态数据转换7. 用于…...

10. java基础知识(下)

文章目录 一、一带而过二、字符串类型String1. 简单了解2. 关于结束符\03. 自动类型转换与强制类型转换 三、API文档与import导包1. API文档2. import导包 四、java中的数组1. 创建2. 遍历3. 补充4. Arrays类① 简单介绍② 练习 五、方法的重载六、规范约束七、内容出处 一、一…...

kafka 在Linux安上的装部署

一、前言 Kafka 是一个分布式流处理平台,在大数据领域有着广泛的应用。在 Linux 系统上安装部署 Kafka 可以为我们搭建高效的数据处理环境。本教程将详细介绍在 Linux 中安装和部署 Kafka 的步骤。 二、准备工作 2.1 系统要求 确保你的 Linux 系统已经安装并配置…...

kill-start系统进程的研究

kill/start系统进程的研究 声明:内容的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。 目录 kill/start系统进程的研究Windows系统进程简介特点系统进程 tas…...

【系统架构设计师】2024年下半年真题论文: 论面向服务的架构设计(包括解题思路和参考素材)

更多内容请见: 备考系统架构设计师-专栏介绍和目录 文章目录 真题题目(2024年下半年 试题1)解题思路论文素材参考面向服务的架构(SOA)概念和特征面向服务的架构关键技术面向服务的架构设计原则面向服务的架构设计案例分析SOA设计面临的挑战与应对策略真题题目(2024年下半…...

吴恩达深度学习笔记:序列模型(Sequence Models) 1.1-1.2

目录 第五门课 序列模型(Sequence Models)第一周 循环序列模型(Recurrent Neural Networks)1.1 为什么选择序列模型?(Why Sequence Models?)1.2 数学符号(Notation) 第五门课 序列模型(Sequenc…...

【Spring】Spring Web MVC基础入门~(含大量例子)

阿华代码,不是逆风,就是我疯 你们的点赞收藏是我前进最大的动力!! 希望本文内容能够帮助到你!! 目录 一:什么是Spring Web MVC 1:Servlet 2:总结 二:MVC …...

使用ThorUi

摘要: 官网 今天遇到一个老项目,使用的是ThorUi组件库!之前没有用过这组件库,所以记录一下不同框架是使用情况! ThorUI 是一个基于 Thorium 的 UI 框架,用于构建跨平台的桌面应用程序。如果你打算使用 Thor…...

【Promise】自定义promise

文章目录 1 定义整体结构2 Promise 构造函数的实现3 promise.then()与promise.catch()的实现4 Promise.resolve()与Promise.reject()的实现5 Promise.all与Promise.race()的实现6 Promise.resolveDelay()与Promise.rejectDelay()的实现 1 定义整体结构 /*自定义 Promise */ (f…...

Docker容器部署Windows系统教程

本章教程,使用Docker容器部署一个Windows操作系统容器。 一、拉取容器 dockurr/windows:latest二、运行容器 docker run -dit --name win11 -v $PWD:/share -v /opt/iso/win11.iso:/custom.iso -p 3389:3389 -p 8006:8006 --device=/dev/kvm --cap-add NET_ADMIN --stop-tim…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言&#xff1a; 通过AI视觉技术&#xff0c;为船厂提供全面的安全监控解决方案&#xff0c;涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面&#xff0c;能够实现对应负责人反馈机制&#xff0c;并最终实现数据的统计报表。提升船厂…...

Qt Widget类解析与代码注释

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码&#xff0c;写上注释 当然可以&#xff01;这段代码是 Qt …...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个&#xff1f;3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制&#xff08;过半机制&#xff0…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

苍穹外卖--缓存菜品

1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据&#xff0c;减少数据库查询操作。 缓存逻辑分析&#xff1a; ①每个分类下的菜品保持一份缓存数据…...

【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)

升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点&#xff0c;但无自动故障转移能力&#xff0c;Master宕机后需人工切换&#xff0c;期间消息可能无法读取。Slave仅存储数据&#xff0c;无法主动升级为Master响应请求&#xff…...

Element Plus 表单(el-form)中关于正整数输入的校验规则

目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入&#xff08;联动&#xff09;2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...

OPENCV形态学基础之二腐蚀

一.腐蚀的原理 (图1) 数学表达式&#xff1a;dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一&#xff0c;腐蚀跟膨胀属于反向操作&#xff0c;膨胀是把图像图像变大&#xff0c;而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...

短视频矩阵系统文案创作功能开发实践,定制化开发

在短视频行业迅猛发展的当下&#xff0c;企业和个人创作者为了扩大影响力、提升传播效果&#xff0c;纷纷采用短视频矩阵运营策略&#xff0c;同时管理多个平台、多个账号的内容发布。然而&#xff0c;频繁的文案创作需求让运营者疲于应对&#xff0c;如何高效产出高质量文案成…...