mcpField
S
sparkscan-capacitor

sparkscan-capacitor

github.com/scandit开发2043 次安装5 天前更新
代码仓库

关于 sparkscan-capacitor

面向 Capacitor 开发者的 Scandit SparkScan 编码技能,涵盖集成、升级和替换,并说明版本相关 API、插件初始化与同步要求。

主要功能

  1. 01SparkScan 集成指导
  2. 02主版本迁移指导
  3. 03第三方扫描器替换指导
  4. 04Capacitor 插件生命周期注意事项
  5. 05依据参考文档核验 API

适用场景

  1. 01在 Capacitor 应用中添加 SparkScan
  2. 02升级现有 SparkScan 集成
  3. 03替换一次性条码扫描器

MCP 相关

介绍通过 Scandit 远程 MCP 服务配置扫描功能并获取试用许可证密钥。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/scandit/skills --skill sparkscan-capacitor

安装后在 Claude Code 中输入/sparkscan-capacitor确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
integration.md
migration.md
third-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 页面时:

  1. 首先检查已获取的页面(例如“高级配置”页面)是否包含指向该页面的直接超链接——主题页面会直接链接到相关 API 符号。获取内容时,务必同时请求链接。
  2. 如果未找到直接链接,请获取 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:

  1. 已连接 Scandit MCP 服务 — 使用产品 native、平台 ios 和 android、app_identifier(应用的 bundle 或 application ID;对于 Web,使用其生产域名,绝不要使用 localhost)以及 env_var SCANDIT_LICENSE_KEY 调用 ensure_scanner_setup。不要运行它返回的命令。然后使用该结果或 list_license_keys 中的密钥 ID 调用 get_license_key;如果 list_license_keys 显示该密钥不是试用密钥,请先征求用户同意再获取。聊天中最多显示经过掩码处理的预览;绝不要输出完整密钥。

  2. 未连接 — 告知用户一次,他们可以在自己的 MCP 客户端中连接远程 Scandit MCP 服务 https://ssl.scandit.com/mcp,然后从第 1 步继续。不要自行编辑 MCP 客户端配置。

    身份验证通过浏览器进行,因此不支持无头模式或 CI。该服务仅提供试用密钥;绝不会创建、撤销或修改生产许可证。

  3. 用户拒绝,或没有 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

评论

支持 Markdown