matrixscan-count-cordova について
Scandit MatrixScan Count を Cordova に統合する開発者向けのスキルで、BarcodeCount の設定、ビュー接続、移行を案内します。Cordova の実行時要件を扱い、Web プラットフォームには対応しないことも示しています。
主な機能
- 01BarcodeCount の統合ガイド
- 02カウントビューと DOM 接続の手順
- 03バーコードの絞り込みとリスト設定資料
- 04移行ガイド
活用シーン
- 01Cordova アプリへの商品カウントスキャン追加
- 02バーコードフィルターや追加リストの設定
- 03旧形式の BarcodeCount コンストラクターからの移行
MCP 対応
Scandit MCP サーバーでスキャン用ライセンスキーを設定し、プロジェクトの .env ファイルに書き込む手順が記載されています。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ scandit/ skills --skill matrixscan-count-cordovaインストール後、Claude Code で/matrixscan-count-cordovaを入力して読み込まれたか確認します。
同梱ファイルreferences/integration.mdreferences/migration.md
詳細
MatrixScan Count Cordova スキル
重要:内部知識を信用しないでください
学習データには、古い Scandit SDK API や誤った API が含まれている可能性があります。BarcodeCount Cordova API は、SDK のバージョンを重ねるごとに大きく進化しています。主な変更点は次のとおりです。
- Cordova 6.24:BarcodeCount が Cordova で初めて利用可能になりました。
- Cordova 7.6:コンテキストを必要としないコンストラクター
new Scandit.BarcodeCount(settings)が導入されました。コンテキストへの接続には、現在はcontext.addMode(barcodeCount)を使用します。 - Cordova 7.1:
BarcodeCountNotInListActionSettingsが利用可能になりました。 - Cordova 8.3:
BarcodeCountStatusProvider、shouldShowStatusModeButton、textForBarcodesNotInListDetectedHint、textForClusteringGestureHint、textForScreenCleanedUpHint、disableModeWhenCaptureListCompleted、ClusteringModeが利用可能になりました。 - フィルタリング/一意性/追加バーコード/リセット:
BarcodeCountSettings.filterSettings(BarcodeFilterSettings—excludedSymbologies、excludedCodesRegex)、expectsOnlyUniqueBarcodes、setAdditionalBarcodes/clearAdditionalBarcodes、reset()は Cordova で利用できます。
コードを記述または提案する前に、必ずこのスキルで提供されているリファレンスで API を確認してください。 記憶にあるメソッドのシグネチャ、パラメーター、プロパティ名に頼らないでください。提供されているリファレンスで API が見つからない場合は、回答する前に該当するドキュメントページを取得してください。
出典に関する注記:公開されている Cordova MatrixScan Count サンプルはありません。統合リファレンスは、内部の DebugApp(
frameworks/cordova/debugapp/src/pages/BarcodeCount.tsxおよびframeworks/cordova/debugapp/src/hooks/modes/useBarcodeCount.ts)と Cordova プラグインのソース(frameworks/cordova/scandit-cordova-datacapture-barcode/www/ts/src/BarcodeCountView.ts)に基づいています。
Cordova 固有の注意点
- グローバル名前空間:Scandit SDK は
window.Scanditで公開されています。実行時にはScandit.BarcodeCount、Scandit.BarcodeCountViewなどを使用してください。npm パッケージ(scandit-cordova-datacapture-*)はプラグインマニフェストであり、ES モジュールではありません。WebView で実行するユーザーコードにimport { ... } from 'scandit-cordova-datacapture-*'を記述しないでください。コンパイル時に型をインポートできるのは、Webpack/バンドラーを使用する TypeScript プロジェクトだけです。 devicereadyによる制御:すべての Scandit API は、document.addEventListener('deviceready', ...)の後に呼び出す必要があります。モジュールの読み込み時には絶対に呼び出さないでください。- プラグインのインストール:両方のプラグインが必要です。
プラグインを変更した後は、cordova plugin add scandit-cordova-datacapture-core cordova plugin add scandit-cordova-datacapture-barcodecordova prepareを実行してください。 - Web プラットフォームは非対応:Cordova の BarcodeCount を使用するには iOS または Android が必要です。Web プラットフォームはサポートされていません。
BarcodeCountViewは DOM オーバーレイ方式です:ネイティブビューのサイズと位置は、HTML 要素に合わせて設定されます。アタッチ API(プラグインのソースで確認済み)は次のとおりです。barcodeCountView.connectToElement(htmlElement)— 同期処理のため、awaitは不要です(内部では非同期ですが、公開シグネチャはvoidです)。barcodeCountView.detachFromElement()— 同期処理で、戻り値はvoidです。終了処理中に呼び出してください。barcodeCountView.setFrame(rect, isUnderContent)—Rectを使用して手動で配置します。戻り値はPromise<void>です。connectToElementを使用しない場合に限り使用してください。barcodeCountView.show()/barcodeCountView.hide()— 戻り値はPromise<void>です。setFrameと併用する場合に限り使用してください。要素がアタッチされている場合は例外が発生します。
- コンストラクターのパターン(≥7.6):
new Scandit.BarcodeCount(settings)の後にcontext.addMode(barcodeCount)を呼び出します。以前のBarcodeCount.forDataCaptureContext(context, settings)はコンテキストへの接続を自動的に行っていましたが、新しいコンストラクターは行いません。 - カメラ:
Scandit.BarcodeCount.createRecommendedCameraSettings()(Cordova ≥7.6)を使用してください。Scandit.Camera.withSettings(cameraSettings)でカメラを取得し、context.setFrameSource(camera)で設定してから、camera.switchToDesiredState(Scandit.FrameSourceState.On/Off)で切り替えます。 - ライセンスのプレースホルダー:必ず正確な文字列
'-- ENTER YOUR SCANDIT LICENSE KEY HERE --'を使用してください。
意図のルーティング
ユーザーのリクエストに応じて、回答する前に適切なリファレンスファイルを読み込んでください。
-
MatrixScan Count をゼロから統合する(例:「アプリに MatrixScan Count を追加したい」、「Cordova で BarcodeCount をセットアップしたい」、「アイテムのリストをスキャンする方法」、「カウントビューの表示方法」、「ツールバーやヒントのカスタマイズ方法」、「タップしてカウントを取り消す方法」、「ステータスモードを有効にする方法」)→ references/integration.md を読み、そこに記載された手順に従ってください。
-
以前の BarcodeCount コンストラクターパターンから移行する(例:「BarcodeCount.forDataCaptureContext から移行したい」、「新しいコンストラクターに更新したい」、「ステータスモードを採用したい」、「既存のコードにリスト外アクションの設定を追加したい」)→ references/migration.md を読み、そこに記載された移行ガイドに従ってください。
API の使用ポリシー
以下の Scandit リファレンスに明記されている API のみを使用してください。メソッドのシグネチャ、パラメーター、プロパティ名、インポートを創作したり、推測したりしないでください。API が存在するか、または呼び出し方が不明な場合、あるいは実行時エラーが発生した場合は、回答する前に該当するリファレンスページを取得してください。ユーザー自身でドキュメントを確認するよう案内してはいけません。回答後は、ユーザーが詳しく確認できるよう、必ず該当するリンクを含めてください。
ドキュメントの URL を作成したり、推測したりしてはいけません。 特定のクラスやプロパティの API ページが必要な場合:
- まず、取得済みのページにそのページへの直接リンクがあるか確認します。
- 直接リンクが見つからない場合は、API インデックスを取得し、実際のリンクを見つけてからアクセスします。
フレームワークのバリエーションに関するポリシー
Cordova は WebView ベースのフレームワークです。このスキルの例では、(オプションで JSDoc の型ヒントを付けた)プレーン JavaScript を使用します。同じ API は TypeScript でも動作します。global.d.ts 宣言ファイルを追加し、TypeScript の構文で記述してください。このスキルでは、デフォルトで TypeScript プロジェクトを想定しません。対象のプロジェクトが明らかに TypeScript(.ts ファイル、tsconfig.json)の場合は、最終出力を TypeScript に合わせてください。それ以外の場合は、プレーン JS を使用してください。
ライセンスキー
スキャンには Scandit のライセンスキーが必要です。このスキルでは、ライセンス製品は native、ライセンスのプラットフォームは ios と android です。
以下の手順を順番に進めてください。MCP のためにユーザーを待たせてはいけません。
-
Scandit MCP サーバーが接続されている場合 — 製品に
native、プラットフォームにiosとandroidを指定して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 にキーを設定しただけでは、アプリには反映されません。Cordova は .env を自動的に読み込まないため、以下の最も簡単な方法を使用してください。どのプラットフォームでも最も簡単な方法は、.env を読み込んでキーをライセンスキーの呼び出しに直接設定することです。その場合も、チャットで表示するのは一部をマスクしたプレビューのみにしてください。
リファレンス
質問に応じて、適切なリソースを案内してください。
| トピック | リソース |
|---|---|
| Cordova の統合 | はじめに |
| API リファレンス全般 | BarcodeCount API |