matrixscan-batch-capacitor について
Capacitor アプリで Scandit MatrixScan Batch を統合、アップグレード、置き換えるためのコーディングスキルです。フレームワーク固有のセットアップを扱い、API の確認には文書化された参照先を案内します。
主な機能
- 01Capacitor BarcodeBatch 統合ガイダンス
- 02SDK 移行ガイダンス
- 03他社スキャナーからの移行ガイダンス
- 04API 検証と参照先の案内
- 05ライセンスキー設定ガイダンス
活用シーン
- 01Capacitor アプリへの BarcodeBatch 追加
- 02既存の Scandit SDK 統合の移行
- 03他の複数バーコードスキャナーの置き換え
- 04API の使い方とプラグイン設定の確認
MCP 対応
MCP サーバーが接続されている場合、Scandit のリモートサーバーを使ってトライアルライセンスキーを設定、取得する手順を説明します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ scandit/ skills --skill matrixscan-batch-capacitorインストール後、Claude Code で/matrixscan-batch-capacitorを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/integration.mdmigration.mdthird-party-migration.md詳細
MatrixScan Batch Capacitor スキル
重要:内部知識を信用しないでください
トレーニングデータには、古い、または誤った Scandit SDK API が含まれている可能性があります。BarcodeBatch* API の仕様はメジャー SDK バージョン間で変更されており、コンストラクターのシグネチャー、オーバーレイのコンストラクター、リスナーの形式はすべて進化しています。
コードを記述または提案する前に、必ずこのスキルに記載されたリファレンスで API を確認してください。 記憶に頼ってメソッドのシグネチャー、パラメーター、プラグイン名、プロパティ名を判断しないでください。
注意すべき Capacitor 固有のポイント:
ScanditCaptureCorePlugin.initializePlugins()は、DataCaptureContext.initializeを含む、ほかの Scandit API を呼び出す前に必ず呼び出し(完了を待機)する必要があります。これを忘れると、初期化とは無関係に見えるランタイムエラーが発生します。- iOS/Android にネイティブアーティファクトを反映するため、プラグインのバージョンを変更するたびに
npx cap syncを実行する必要があります。実行しないと、実行時に Web とネイティブのバージョンが一致しなくなります。 - Capacitor では、コンテキストにモードを登録するには
context.setMode(barcodeBatch)を使用します(両方のサンプルで確認済み)。これにより、以前に有効だったモードが置き換えられます。 DataCaptureView.forContext(context)は、キャプチャビューを生成する Capacitor のファクトリーです。その後、view.connectToElement(htmlElement)を呼び出して DOM に接続します。- 最新のコンストラクターには SDK 7.6 以降が必要です:
new BarcodeBatch(settings)、new BarcodeBatchBasicOverlay(mode, style)、new BarcodeBatchAdvancedOverlay(mode)、およびBarcodeBatch.createRecommendedCameraSettings()は、いずれも capacitor=7.6 から利用できます。 - AdvancedOverlay はシリアライズされたビューを使用します:Capacitor では、
setViewForTrackedBarcodeはview: Promise<TrackedBarcodeView?>を受け取ります。これはネイティブ UI インスタンスではなく、シリアライズされたTrackedBarcodeViewです。scandit-capacitor-datacapture-barcodeのTrackedBarcodeView.withHTMLElement(domElement, options)を使用してください。Promise でラップするか、そのまま渡します。サンプルではインスタンスをそのまま渡しています(API 内部でラップされます)。 - MatrixScan AR アドオンが必要です:
BarcodeBatchAdvancedOverlay、IBarcodeBatchBasicOverlayListener.brushForTrackedBarcode、およびsetBrushForTrackedBarcodeの使用には、MatrixScan AR アドオンのライセンスが必要です。 - カメラの権限:iOS では
Info.plistにNSCameraUsageDescriptionが必要です。Android ではプラグインが自動的に処理します。 - TrackedObject(Capacitor 8.2 以降):SDK 8.2 では、
TrackedBarcodeが継承する基底クラスTrackedObjectが導入されました。このためのレシピは不要です。日常的に使用するTrackedBarcodeAPI に変更はありません。
インテントの振り分け
ユーザーのリクエストに応じて、回答する前に適切なリファレンスファイルを読み込んでください。
- MatrixScan Batch を一から統合する(例:「アプリに MatrixScan を追加する」、「BarcodeBatch をセットアップする」、「複数のバーコードを同時に追跡する」、「AR オーバーレイを表示する」、「バーコードごとのブラシ」、「タップ処理」、「オーバーレイのスタイル(フレーム/ドット)」、「スキャン時のフィードバック/ビープ音/振動」、「ライフサイクルまたはクリーンアップ」、「カメラの権限」)→ references/integration.md を読み、そこに記載された手順に従ってください。
- Scandit SDK のバージョンをアップグレードする(例:「v6/v7 から v8 に移行する」、「BarcodeTracking がなくなった」、「BarcodeTracking を BarcodeBatch に名称変更する」、「DataCaptureContext.forLicenseKey が見つからない」)→ references/migration.md を読み、そこに記載された手順に従ってください。
- サードパーティ製の複数バーコードスキャナーを置き換える(例:「@capacitor-mlkit/barcode-scanning/ML Kit から MatrixScan Batch に切り替える」、「BarcodeScanner.startScan と barcodesScanned を Scandit に置き換える」)→ references/third-party-migration.md を読み、そこに記載された手順に従ってください。
API の使用ポリシー
以下の Scandit リファレンスに明記されている API のみを使用してください。メソッドのシグネチャ、パラメーター、プロパティ名、インポートを作り出したり、推測したりしないでください。API が存在するか、または呼び出し方法がわからない場合、あるいは TypeScript/ランタイムエラーが発生した場合は、回答する前に該当するリファレンスページを取得してください。ユーザー自身でドキュメントを確認するよう案内してはいけません。回答後は、ユーザーがさらに詳しく確認できるよう、必ず関連リンクを含めてください。
ドキュメントの URL を作ったり、推測したりしてはいけません。 特定のクラスまたはプロパティの API ページが必要な場合は、次の手順に従ってください。
- まず、すでに取得したページに、そのページへの直接リンクがあるか確認します。
- 直接リンクが見つからない場合は、API インデックスを取得し、実際のリンクを抽出してから、そのリンク先を開きます。
URL の構造は SDK のバージョンやパッケージのパスによって異なります。推測すると 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(アプリのバンドル ID またはアプリケーション ID。Web の場合は本番ドメインを指定し、localhostは指定しないでください)、環境変数にSCANDIT_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 のスタートガイド | はじめに |
| Capacitor の AR オーバーレイ | AR オーバーレイの追加 |
| Bubbles サンプル | MatrixScanBubblesSample |
| API リファレンス全体 | BarcodeBatch API |