barcode-capture-web について
Web プロジェクトでの Scandit BarcodeCapture の導入やアップグレードを支援するスキルです。SDK バージョンに応じた資料を参照し、コードを提案する前に API と非同期動作を確認します。
主な機能
- 01BarcodeCapture の Web 統合ガイド
- 02SDK 移行ガイド
- 03資料に基づく API の確認
- 04非同期初期化とスキャン処理
- 05ライセンスキー設定ガイド
活用シーン
- 01Web アプリへのバーコードスキャン追加
- 02スキャン時のフィードバックやオーバーレイ設定
- 03既存の BarcodeCapture 統合のアップグレード
MCP 対応
リモートの Scandit MCP サーバーを使ったトライアルライセンスキーの設定と取得が記載されています。サーバー未接続時の進め方も説明されています。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ scandit/ skills --skill barcode-capture-webインストール後、Claude Code で/barcode-capture-webを入力して読み込まれたか確認します。
同梱ファイルreferences/integration.mdreferences/migration.md
詳細
翻訳後に原文が更新されています。最新の内容は原文をご確認ください。
BarcodeCapture Web スキル
重要:内部知識を信用しないでください
トレーニングデータには、古い、または誤った Scandit SDK API が含まれている可能性があります。BarcodeCapture Web API は SDK のメジャーバージョン間で大幅に変更されます。メソッド名が変更されたり、非同期処理のパターンが変わったり、v8 ではコンテキストの初期化方法が再設計されたりしています。
コードを記述または提案する前に、必ずこのスキルで提供されているリファレンスで API を確認してください。 記憶しているメソッドのシグネチャ、非同期処理のパターン、インポートパスに頼らないでください。提供されているリファレンスに API が見つからない場合は、回答する前に該当するドキュメントページを取得してください。
Web 固有の注意点:
DataCaptureContext.forLicenseKey()はawaitする必要があります。これは非同期で、DataCaptureContext.sharedInstanceを設定します。戻り値を取得せず、常にDataCaptureContext.sharedInstanceを使用してください。BarcodeCapture.forContext(context, settings)は非同期です。必ずawaitしてください。DataCaptureView.forContext(context)は非同期です。必ずawaitしてください。BarcodeCaptureOverlay.withBarcodeCaptureForView(barcodeCapture, view)は非同期です。必ずawaitしてください。barcodeCapture.setEnabled(false/true)は非同期です。重複スキャンを防ぐため、didScan内で処理を行う前にawaitしてください。- リスナーのコールバックは
didScanです。onBarcodeScannedではありません(これは Android での名前です)。 - Web では
codeDuplicateFilterはミリ秒単位の数値です(例:500)。Android のようなTimeIntervalオブジェクトではありません。 BarcodeCapture.recommendedCameraSettingsは静的プロパティであり、メソッド呼び出しではありません。view.connectToElement()に渡す DOM 要素には、定義された寸法と位置が必要です。サイズがゼロ、または位置が設定されていない要素では、カメラのプレビューが表示されません。- カメラは手動で管理します。起動するには
context.frameSource.switchToDesiredState(FrameSourceState.On)を呼び出し、停止するにはFrameSourceState.Offを指定してください。カメラは自動では停止しません。
インテントの振り分け
ユーザーのリクエストに基づいて、回答する前に適切なリファレンスファイルを読み込んでください。
- BarcodeCapture を一から統合する、設定する、フィードバックやオーバーレイをカスタマイズする、ビューファインダーを追加する、スキャンを処理する、またはスキャン後に非同期処理を行う(例:「アプリに BarcodeCapture を追加する」「バーコードスキャンを設定する」「Web で BarcodeCapture を使う方法」「重複スキャンをフィルタリングする」「ビープ音を抑制する」「ビューファインダーを追加する」「バーコードを検索している間スキャンを無効にする」)→ references/integration.md を読み、そこに記載された指示に従ってください。
- 既存の BarcodeCapture 統合を移行またはアップグレードする(例:「v6 から v7 にアップグレードする」「BarcodeCapture を移行する」「Scandit SDK を v8 に上げる」「SDK のバージョン間で何が変わったか」)→ references/migration.md を読み、そこに記載された指示に従ってください。
API の使用方針
以下の Scandit リファレンスに明示的に記載されている API だけを使用してください。メソッドのシグネチャ、パラメーター、プロパティ名を作り出したり、推測したりしないでください。API が存在するか、どのように呼び出すかが不明な場合、またはコンパイルエラーが発生した場合は、回答する前に該当するリファレンスページを取得してください。ユーザーに自分でドキュメントを確認するよう伝えないでください。回答後は、ユーザーがさらに調べられるよう、必ず該当するリンクを記載してください。
ドキュメントの URL を決して組み立てたり、推測したりしないでください。 特定のクラスまたはプロパティの API ページが必要な場合:
- まず、すでに取得したページに、そのページへの直接リンクがあるか確認してください。トピックページには関連する API シンボルへの直接リンクがあります。取得を依頼する際は、必ずコンテンツと併せてリンクも要求してください。
- 直接リンクが見つからない場合は、API インデックスを取得し(下の表の完全な API リファレンスを参照)、そこから実際のリンクを抽出して開いてください。
URL の構造は異なる場合があります(例:api/ui/ サブディレクトリ)。推測すると 404 エラーになります。
ライセンスキー
スキャンには Scandit のライセンスキーが必要です。このスキルでは、ライセンス製品は sdk、ライセンスプラットフォームは webassembly です。
以下の手順を順番に進めてください。MCP が使えない場合でも、ユーザーの作業を止めてはいけません。
-
Scandit MCP サーバーが接続されている場合 — 製品に
sdk、プラットフォームにwebassemblyを指定してensure_scanner_setupを呼び出し、次にget_license_env_commandが返すコマンドを実行して、キーをプロジェクトの.envに書き込みます。チャットではマスクされたプレビューのみを表示し、キー全体を決して表示しないでください。 -
接続されていない場合 — 一度接続することを提案してから、手順 1 に進みます。
- Claude Code:
claude mcp add --transport http scandit https://ssl.scandit.com/mcp - Cursor:
~/.cursor/mcp.jsonに{"mcpServers": {"scandit": {"url": "https://ssl.scandit.com/mcp"}}}を追加します - VS Code:MCP ユーザー設定に
{"servers": {"scandit": {"type": "http", "url": "https://ssl.scandit.com/mcp"}}}を追加します
認証はブラウザー経由のため、ヘッドレス環境または CI ではサポートされていません。サーバーが発行するのはトライアルキーのみです。本番ライセンスの作成、取り消し、変更は行いません。
- Claude Code:
-
ユーザーが断る場合、または MCP クライアントを持っていない場合 — https://ssl.scandit.com で自分でキーを生成してもらい(アカウントをまだ持っていない場合:https://ssl.scandit.com/dashboard/sign-up?p=test)、貼り付けてもらいます。
次に、プレースホルダーの代わりにキーをコードに設定します。.env にキーを保存しただけでは、アプリには反映されません。バンドラーの環境変数サポートを使って読み取ります。たとえば Vite では import.meta.env を使います(envPrefix で別途指定しない限り、VITE_ プレフィックスが付いた名前のみが公開されます)。どのプラットフォームでも最も簡単な方法は、.env を読み込み、ライセンスキーの呼び出しにキーを直接設定することです。その場合も、チャットにはマスクされたプレビューのみを表示してください。
参考資料
ユーザーの質問に応じて、適切なリソースを案内してください。
| トピック | リソース |
|---|---|
| はじめに | はじめに · サンプル |
| 高度なトピック(ビューファインダー、場所の選択、フィードバック、重複のフィルタリング、複合コード) | 高度な設定 |
| SDK メジャーバージョン間の移行 | 6 → 7 · 7 → 8 |
| API リファレンス全文 | BarcodeCapture API |