跳转至正文
@capgo/capacitor-app-intents UI 与系统 开源

App Intents Capacitor 插件

无需为每个操作重新构建 Web 层,即可通过 Capacitor 发布 Siri 短语、Shortcuts、Spotlight、主屏幕快速操作以及 App Intents 实体目录

安装

bun add @capgo/capacitor-app-intents bunx cap sync
npm、pnpm 或 yarn
  • npm install @capgo/capacitor-app-intents
  • pnpm add @capgo/capacitor-app-intents
  • yarn add @capgo/capacitor-app-intents

指南

如何在 Capacitor 中使用 App Intents

使用 @capgo/capacitor-app-intents

Capgo App Intents 插件接口。

安装

bun add @capgo/capacitor-app-intents
bunx cap sync

bunx cap sync 将插件的原生 code 复制到你的原生项目中。每次升级插件后都要重新运行。

导入

import { CapgoAppIntents } from '@capgo/capacitor-app-intents';

API 概览

方法 描述
getPendingInvocations 返回在 JavaScript 就绪前已排队的调用。
removePendingInvocation 在 handler 处理完后,移除一个待处理的调用。
setEntityCatalog 为给定的类型字符串持久化实体目录。
setHomeScreenShortcutItems 替换主屏幕快速操作 (UIApplicationShortcutItems)。
indexSpotlightEntities 为你的 App 域建立 Spotlight 条目索引。
removeSpotlightEntities 按 id 删除 Spotlight 项。
performAppleSchemaTemplate 将 JavaScript 处理程序加入队列,用于 alpha 版 Apple schema template。

示例

getPendingInvocations()

返回在 JavaScript 就绪前已排队的调用。

import { CapgoAppIntents } from '@capgo/capacitor-app-intents';

const result = await CapgoAppIntents.getPendingInvocations();
console.log(result);

removePendingInvocation()

在 handler 处理完后,移除一个待处理的调用。

import { CapgoAppIntents } from '@capgo/capacitor-app-intents';

await CapgoAppIntents.removePendingInvocation({ id: 'id-123' });

setEntityCatalog()

为给定的类型字符串持久化实体目录。

import { CapgoAppIntents } from '@capgo/capacitor-app-intents';

await CapgoAppIntents.setEntityCatalog({
  type: 'type',
  entries: [
    {
      id: 'id-123',
      title: 'Hello from Capacitor',
    },
  ],
});

setHomeScreenShortcutItems()

替换主屏幕快速操作 (UIApplicationShortcutItems)。

import { CapgoAppIntents } from '@capgo/capacitor-app-intents';

await CapgoAppIntents.setHomeScreenShortcutItems({
  items: [
    {
      type: 'type',
      title: 'Hello from Capacitor',
    },
  ],
});

indexSpotlightEntities()

为你的 App 域建立 Spotlight 条目索引。

import { CapgoAppIntents } from '@capgo/capacitor-app-intents';

await CapgoAppIntents.indexSpotlightEntities({
  entities: [
    {
      id: 'id-123',
      title: 'Hello from Capacitor',
      actionName: 'action',
    },
  ],
});

removeSpotlightEntities()

按 id 删除 Spotlight 项。

import { CapgoAppIntents } from '@capgo/capacitor-app-intents';

await CapgoAppIntents.removeSpotlightEntities({ ids: ['ids'] });

上表列出了 7 个核心方法。有关监听器、版本辅助函数以及每个方法的完整契约,请参阅 GitHub 仓库.

监听事件

addListener 会返回一个句柄。调用 handle.remove() 在屏幕卸载时,或者调用 CapgoAppIntents.removeAllListeners() 以清除所有监听器。

完整参考文档

常见问题

App Intents 插件常见问题

如何在 Capacitor 应用中安装 App Intents 插件?

运行 "bun add @capgo/capacitor-app-intents"(或 "npm install @capgo/capacitor-app-intents"),然后运行 "bunx cap sync",以便 iOS 和 Android 项目获取原生 code。在您的应用 code 中从 "@capgo/capacitor-app-intents" 导入它。

@capgo/capacitor-app-intents 支持 React、Vue 和 Angular 吗?

是的。App Intents 是一个 Capacitor 包,因此它适用于任何在 Capacitor 内运行的 Web 框架,包括 Ionic、React、Vue、Angular、Svelte 和纯 JavaScript。

@capgo/capacitor-app-intents 支持哪个版本的 Capacitor?

Capgo 插件遵循 Capacitor 的主版本号:请使用与 Capacitor 主版本号一致的插件主版本(例如插件 v8 对应 Capacitor 8)。GitHub README 中的兼容性表列出了仍在维护的版本。

@capgo/capacitor-app-intents 是免费且开源的吗?

是的。code 源代码公开在 GitHub 上,地址为 https://github.com/Cap-go/capacitor-app-intents/,并且可以从 npm 免费安装该包。欢迎提交 Bug 报告和 Pull Request。

我可以更新使用 App Intents 的 code 而无需经过 App Store 审核吗?

安装或升级插件会改动原生 code,因此需要重新做一次商店构建。之后,调用该插件的 JavaScript、HTML 和 CSS 改动就能通过 Capgo live updates 立即发布。

无需等待应用审核,即可发布 App Intents 更新

只要插件已包含在你的商店版本中,Capgo live updates 就能在几分钟内把 JavaScript、HTML 和 CSS 的改动推送给用户。

开始使用 Capgo