用途:为 iOS 应用设计 App Intents、App 实体与 App Shortcuts,把应用能力暴露给 Shortcuts、Siri、Spotlight、小组件等系统入口。核心思路是先确定人们真正希望在应用之外完成的高价值动作与对象,再实现一个窄而清晰的意图层,必要时干净地深链或交接回主应用。
主要能力与做法:从动作而非界面出发,挑选 1 至 3 个最高价值动作,优先使用 compose、open、find、filter、continue、inspect、start 这类动词,不要照搬整个导航树。只对系统需要理解或路由的对象定义 AppEntity,实体结构比持久化模型更窄;仅在确有消歧或建议价值时添加 EntityQuery 等查询类型。决定动作是在原地完成还是打开应用:可用非打开式意图直接完成,或用 openAppWhenRun 及打开式意图引导用户进入特定流程;两种模式都可行时,可同时提供内联版与打开应用版。为主力意图添加 AppShortcutsProvider 条目,设计适合 Shortcuts、Siri、Spotlight 的标题、短语与符号,短语保持直接、面向任务。当小组件配置或控件需要相同参数时,可复用同一动作模型。最后构建应用并确认意图目标能编译通过,验证意图运行时应用能打开或路由到预期位置。
建议默认做法:为面向系统的层使用独立意图目标或模块;意图类型保持轻量,业务逻辑留在应用服务或领域模型;应用实体保持小而适合展示;固定选项(如标签页、模式、可见级别)优先用 AppEnum;在主场景或根路由中保留一个可预期的意图路由入口。
反模式:把每个界面或标签页都做成意图、把整个模型图镜像为 AppEntity、把运行时交接藏在无明确入口的全局副作用中、使用含糊短语或通用标题、把首次 App Intents 当作庞大分类工程。
适用场景:需要接入系统级入口的 iOS 应用,尤其是希望把打开编辑器、执行轻量操作、选择固定模式、通过查询解析实体、驱动小组件配置等能力交给系统复用的项目。
限制:资料未提供具体平台版本、API 签名、收费或效果保证;Apple 文档链接与参考文件路径为原文保留,实际实现时若 API 或平台行为有变化,应以当前 Apple Developer 文档为准。