用途
本技能用于在 .NET for iOS 项目(net*-ios 目标框架,非 MAUI)中集成 Scandit SparkScan 单条码扫描功能,并使用预置的 SparkScanView 界面组件。针对 MAUI 应用,应改用 sparkscan-net-maui 技能。
技能开篇即强调:不要信任内部知识。训练数据可能包含过时或错误的 Scandit SDK API,SparkScan API 在主要 SDK 版本间会发生变化,按钮可见性和颜色属性可能被重命名、移除或重构。.NET 绑定使用与 Swift/Obj-C 原生 SDK 不同的命名约定(PascalCase、Enabled 而非 isEnabled、TimeSpan 而非 TimeInterval),且部分命名与该 .NET API 的其余部分不一致。技能要求在编写或建议代码前始终对照其提供的参考进行验证。
主要能力与内容
技能按用户意图路由到不同的参考文件:
- 从零集成 SparkScan、配置设置、自定义反馈、自定义 SparkScanView 外观、处理扫描、扫描后异步操作、将扫描条码显示为列表 → 阅读 references/integration.md
- 迁移或升级现有 SparkScan 集成(如 v6 到 v7、升级到 v8)→ 阅读 references/migration.md
- 用 SparkScan 替换第三方条码扫描器(如 ZXing.Net.Mobile、AVFoundation)→ 阅读 references/third-party-migration.md
技能列出的 .NET for iOS 特有注意事项包括:
- 目标为非 MAUI 的 .NET for iOS 工作负载。
SparkScan与SparkScanSettings使用普通new构造函数,而非Create(...)工厂;写法为var settings = new SparkScanSettings(); var sparkScan = new SparkScan(settings);。SparkScanView.Create(parent, context, sparkScan, settings)则是工厂。- iOS 上
parent参数即this.View,创建后的视图会自动加入父视图,无需自行调用AddSubview。 - iOS 生命周期使用
ViewWillAppear中的PrepareScanning()与ViewWillDisappear中的StopScanning();不要使用 Android 专有的 OnPause/OnResume。 - 需选择与控制器实例化方式匹配的
UIViewController构造函数,否则相机预览不会出现。 Info.plist中的NSCameraUsageDescription为必需项。ISparkScanListener仅有OnBarcodeScanned与OnSessionUpdated两个方法。- 惯用 C# 建议优先使用事件 API(
sparkScan.BarcodeScanned += handler)。 - iOS 上
IFrameData与图像缓冲必须Dispose()。 - 符号名称为 C# PascalCase(如
Symbology.Ean13Upca)。 CodeDuplicateFilter为TimeSpan。- 反馈通过
ISparkScanFeedbackDelegate.GetFeedbackForBarcode(Barcode)提供。 - SDK 8.0+ 需在
AppDelegate.FinishedLaunching中显式初始化。 - NuGet 包为
Scandit.DataCapture.Core与Scandit.DataCapture.Barcode,且不应从训练数据猜测版本,需从 NuGet 获取最新稳定版。 HardwareTriggerSupported与HardwareTriggerKeyCode为 Android 专有,iOS 代码中不要引用。
使用方式
用户提出相关请求时,技能根据意图加载对应参考文件后再响应,并要求只使用参考资料中明确记录的 API,不猜测方法签名、参数或属性名。回答后应附上相关链接。若遇到不确定的 API 或编译错误,应先抓取相关参考页面,而非让用户自行查文档。
关于许可证密钥:扫描需要 Scandit 许可证密钥。技能给出按顺序处理的流程——若 Scandit MCP 服务器已连接,调用 ensure_scanner_setup(product 为 native、platforms 为 ios),再执行 get_license_env_command 返回的命令写入项目 .env;若未连接,可提供连接方式(Claude Code、Cursor、VS Code 的 MCP 配置命令/片段),或由用户自行在 https://ssl.scandit.com 生成密钥。密钥在聊天中只显示掩码预览。
参考文献
技能指向的资源包括:Get Started(.NET for iOS)、Advanced Configurations、迁移指南(6 → 7、7 → 8)、完整 API 参考(SparkScan API .NET iOS)。并列出技能覆盖的 API 表面,涵盖 SparkScan、SparkScanSettings、SparkScanSession、SparkScanEventArgs、ISparkScanListener、SparkScanLicenseInfo、各类反馈类、SparkScanView、SparkScanViewSettings、SparkScanToastSettings 以及若干枚举。
适用场景
适用于在 .NET for iOS 应用中添加或配置 SparkScan 条码扫描、自定义扫描反馈与界面、处理扫描结果并展示列表、进行 SDK 版本迁移,或从第三方扫码库切换到 Scandit 的开发场景。
限制
技能未提供具体价格、收费、平台支持范围、扫描效果或性能数据,这些事实暂未提供。目标框架与 NuGet 版本等具体内容需以最新官方文档与 NuGet 为准。