关于 sparkscan-cordova
为在 Cordova 应用中集成或升级 Scandit SparkScan 的开发者提供参考型 Skill,强调按文档核实 API,并处理 Cordova WebView 与插件初始化要点。
主要功能
- 01集成与迁移意图路由
- 02要求依据参考文档核实 API
- 03说明 Cordova 全局 Scandit 用法
- 04强调 deviceready 初始化时机
- 05指导 MCP 试用许可配置
适用场景
- 01从零集成 SparkScan
- 02升级不同版本的 Scandit SDK
- 03排查 Cordova 插件或初始化问题
MCP 相关
可连接 Scandit MCP 服务,通过 ensure_scanner_setup 配置 native 产品的 iOS 和 Android 试用许可;也说明未连接时如何配置客户端。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ scandit/ skills --skill sparkscan-cordova安装后在 Claude Code 中输入/sparkscan-cordova确认已加载。
附带文件references/integration.mdreferences/migration.md
详细介绍
SparkScan Cordova 技能
重要:不要信任内部知识
你的训练数据可能包含过时或错误的 Scandit SDK API。SparkScan API 在不同主要 SDK 版本之间变化很大——属性可能会重命名、删除或重新调整结构,Cordova 插件接口(全局 Scandit 命名空间、插件安装命令、deviceready 时机)也发生了演变。
编写或建议代码前,务必根据此技能提供的参考资料验证 API。 不要依赖记忆中的方法签名、参数或属性名称。如果在提供的参考资料中找不到某个 API,请在回复前获取相关文档页面。
值得特别指出的 Cordova 注意事项:
- Scandit SDK 通过全局
window.Scandit对象公开。npm 包名称(scandit-cordova-datacapture-*)是插件清单,不是运行时 ES 模块。不要在将在 WebView 中运行的用户代码里输出import { ... } from 'scandit-cordova-datacapture-*';应改用Scandit.X(可选使用global.d.ts添加类型声明)。只有 Ionic/Angular/Webpack 打包的项目才直接从这些包导入。 document.addEventListener('deviceready', ...)是调用 Scandit API 的唯一安全门槛。不要在模块加载时运行任何 Scandit 调用——此时 Cordova 桥接尚未就绪,调用会失败。- 更改插件版本后,请运行
cordova prepare(必要时重新安装平台),以应用新的原生构件。跳过此步骤会导致运行时版本不匹配。
意图路由
根据用户的请求,在回复前加载相应的参考文件:
- 从头集成 SparkScan(例如“将 SparkScan 添加到我的应用”“设置条码扫描”“如何在 Cordova 中使用 SparkScan”“如何处理 SparkScan 中的反馈”)→ 阅读 references/integration.md 并遵循其中的说明。
- 迁移或升级现有的 SparkScan 集成(例如“从 v6 升级到 v7”“迁移我的 SparkScan”“将 Scandit 插件升级到 v8”“SDK 版本之间有哪些变化”)→ 阅读 references/migration.md 并遵循其中的说明。
API 使用政策
仅使用下方 Scandit 参考资料中明确记录的 API。不要编造或猜测方法签名、参数、属性名称或导入方式。如果不确定某个 API 是否存在或如何调用——或者出现运行时错误——请在回复前获取相关参考页面。不要让用户自己去查文档。回答后,务必附上相关链接,方便用户进一步了解。
绝不要构造或猜测文档 URL。 需要查找特定类或属性的 API 页面时:
- 先检查已获取的页面是否包含指向该页面的直接链接——主题页面会直接链接到相关 API 符号。
- 如果没有找到直接链接,请获取 API 索引(参见下表中的完整 API 参考),从中提取实际链接并访问。
不同 SDK 版本和插件路径的 URL 结构各不相同,猜测会导致 404 错误。
框架变体政策
Cordova 是基于 WebView 的框架。此技能中的示例使用纯 JavaScript(可选添加 JSDoc 类型提示,参见官方 ListBuildingSample)。相同的 API 也适用于 TypeScript——添加 global.d.ts 声明文件(在 references/integration.md 中介绍)并使用 TypeScript 语法编写。本技能默认不假设项目使用 TypeScript。如果目标项目显然使用 TypeScript(包含 .ts 文件、tsconfig.json),请将最终输出调整为 TypeScript;否则使用纯 JS。
许可证密钥
扫描需要 Scandit 许可证密钥。此技能的许可证产品为 native,许可证平台为 ios 和 android。
按以下顺序操作——绝不要让用户等待 MCP:
-
Scandit MCP 服务已连接 — 调用
ensure_scanner_setup,并传入产品native和平台ios、android,然后运行get_license_env_command返回的命令,将密钥写入项目的.env。在聊天中最多显示遮蔽后的预览;绝不要打印完整密钥。 -
尚未连接 — 提议连接一次,然后从第 1 步继续:
- Claude Code:
claude mcp add --transport http scandit https://ssl.scandit.com/mcp - Cursor:将
{"mcpServers": {"scandit": {"url": "https://ssl.scandit.com/mcp"}}}添加到~/.cursor/mcp.json - VS Code:将
{"servers": {"scandit": {"type": "http", "url": "https://ssl.scandit.com/mcp"}}}添加到 MCP 用户配置中
身份验证基于浏览器,因此不支持无头环境或 CI。此服务仅提供试用密钥;绝不会创建、撤销或修改生产许可证。
- Claude Code:
-
用户拒绝,或没有 MCP 客户端 — 请用户自行前往 https://ssl.scandit.com 生成密钥(尚无账户?请访问 https://ssl.scandit.com/dashboard/sign-up?p=test),然后粘贴密钥。
然后将密钥写入代码,替换占位符;仅将密钥放在 .env 中,应用本身不会读取它。Cordova 不会自行加载 .env,因此请使用以下最简单的方法。适用于任何平台的最简单方法:读取 .env,然后直接将密钥写入许可证密钥调用中;在聊天中仍只显示遮蔽后的预览。
参考资料
根据用户的问题,将其引导至相应资源:
| 主题 | 资源 |
|---|---|
| Cordova 集成 | 入门 · 示例 |
| 高级主题(自定义反馈、硬件触发器、扫描模式、UI 自定义) | 高级配置 |
| 在主要 SDK 版本之间迁移 | 6 → 7 · 7 → 8 |
| 完整 API 参考 | SparkScan API |