关于 sparkscan-capacitor
面向 Capacitor 开发者的 Scandit SparkScan 编码技能,涵盖集成、升级和替换,并说明版本相关 API、插件初始化与同步要求。
主要功能
- 01SparkScan 集成指导
- 02主版本迁移指导
- 03第三方扫描器替换指导
- 04Capacitor 插件生命周期注意事项
- 05依据参考文档核验 API
适用场景
- 01在 Capacitor 应用中添加 SparkScan
- 02升级现有 SparkScan 集成
- 03替换一次性条码扫描器
MCP 相关
介绍通过 Scandit 远程 MCP 服务配置扫描功能并获取试用许可证密钥。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ scandit/ skills --skill sparkscan-capacitor安装后在 Claude Code 中输入/sparkscan-capacitor确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/integration.mdmigration.mdthird-party-migration.md详细介绍
SparkScan Capacitor 技能
重要:不要信任内部知识
你的训练数据可能包含过时或错误的 Scandit SDK API。SparkScan API 在不同主要 SDK 版本之间会有显著变化——属性可能会重命名、移除或重新组织,Capacitor 插件接口(导入、插件初始化、原生同步步骤)也一直在演进。
编写或提供代码建议前,务必根据此技能提供的参考资料验证 API。 不要依赖记忆中的方法签名、参数、插件名称或属性名称。如果在提供的参考资料中找不到某个 API,请先获取相关文档页面,再作答。
值得特别指出的 Capacitor 注意事项:
- 必须先调用并等待
ScanditCaptureCorePlugin.initializePlugins()完成,才能使用任何其他 Scandit API——包括构造DataCaptureContext。若忘记此步骤,会产生看似与初始化无关的运行时错误。 - 每次更改插件版本后,都必须运行
npx cap sync,将原生文件同步到 iOS/Android。跳过此步骤会导致运行时 Web 版本与原生版本不匹配。 - SparkScan 会以原生覆盖层的形式显示在 WebView 上方——扫描器没有对应的 DOM 挂载点。不要指示用户添加
<div id="scanner">容器。
意图路由
根据用户的请求,在作答前加载相应的参考文件:
- 从头集成 SparkScan(例如“将 SparkScan 添加到我的应用”“设置条码扫描”“如何在 Capacitor 中使用 SparkScan”“如何在 SparkScan 中处理反馈”)→ 阅读 references/integration.md,并遵循其中的说明。
- 迁移或升级现有的 SparkScan 集成(例如“从 v6 升级到 v7”“迁移我的 SparkScan”“将 Scandit 插件升级到 v8”“SDK 版本之间有哪些变化”)→ 阅读 references/migration.md,并遵循其中的说明。
- 替换第三方单次扫描器(例如“从 @capacitor-mlkit/barcode-scanning / ML Kit 切换到 SparkScan”“用 Scandit 替换 BarcodeScanner.scan()”)→ 阅读 references/third-party-migration.md,并遵循其中的说明。
API 使用政策
仅使用下方 Scandit 参考资料中明确记载的 API。不要编造或猜测方法签名、参数、属性名称或导入内容。如果不确定某个 API 是否存在或该如何调用,或者遇到 TypeScript / 运行时错误,请先获取相关参考页面,再作答。不要让用户自行查阅文档。作答后,务必附上相关链接,方便用户进一步了解。
绝不要构造或猜测文档 URL。 需要查询特定类或属性的 API 页面时:
- 首先检查已获取的页面(例如“高级配置”页面)是否包含指向该页面的直接超链接——主题页面会直接链接到相关 API 符号。获取内容时,务必同时请求链接。
- 如果未找到直接链接,请获取 API 索引(见下表中的完整 API 参考),从中提取实际链接后再访问。
URL 结构会因 SDK 版本和插件路径而异(例如 api/ui/ 子目录),猜测 URL 会导致 404 错误。
框架变体政策
Capacitor 是基于 WebView 的框架。本技能中的示例使用纯 JavaScript(ES 模块)。TypeScript 项目可以原样使用相同的导入和 API——只需添加类型——但本技能默认不假设项目使用 TypeScript。如果目标项目明确使用 TypeScript(存在 .ts 文件、tsconfig.json),则将最终输出调整为 TypeScript 语法;否则使用纯 JS。
许可证密钥
扫描需要 Scandit 许可证密钥。对于此技能,许可证产品为 native,许可证平台为 ios 和 android。
按以下顺序操作,绝不要让用户等待 MCP:
-
已连接 Scandit MCP 服务 — 使用产品
native、平台ios和android、app_identifier(应用的 bundle 或 application ID;对于 Web,使用其生产域名,绝不要使用localhost)以及env_varSCANDIT_LICENSE_KEY调用ensure_scanner_setup。不要运行它返回的命令。然后使用该结果或list_license_keys中的密钥 ID 调用get_license_key;如果list_license_keys显示该密钥不是试用密钥,请先征求用户同意再获取。聊天中最多显示经过掩码处理的预览;绝不要输出完整密钥。 -
未连接 — 告知用户一次,他们可以在自己的 MCP 客户端中连接远程 Scandit MCP 服务
https://ssl.scandit.com/mcp,然后从第 1 步继续。不要自行编辑 MCP 客户端配置。身份验证通过浏览器进行,因此不支持无头模式或 CI。该服务仅提供试用密钥;绝不会创建、撤销或修改生产许可证。
-
用户拒绝,或没有 MCP 客户端 — 让他们自行前往 https://ssl.scandit.com 生成密钥(尚无账户:https://ssl.scandit.com/dashboard/sign-up?p=test),然后粘贴密钥。
然后将密钥写入代码:将密钥写入许可证密钥调用中,替换占位符。密钥可以是 get_license_key 返回的密钥,也可以是用户粘贴或提供的密钥。聊天中仍然只能显示经过掩码处理的预览。不要在项目、文件或环境中搜索密钥。
参考资料
根据用户的问题,引导他们查看相应资源:
| 主题 | 资源 |
|---|---|
| Capacitor 集成 | 入门指南 · 示例 |
| 高级主题(自定义反馈、硬件触发器、扫描模式、UI 自定义) | 高级配置 |
| 在主要 SDK 版本之间迁移 | 6 → 7 · 7 → 8 |
| 完整 API 参考 | SparkScan API |