matrixscan-count-capacitor について
Capacitor アプリで MatrixScan Count を導入し、BarcodeCount API を更新するためのコーディングスキルです。バージョンの確認と Capacitor 固有の設定要件を重視します。
主な機能
- 01MatrixScan Count の導入ガイド
- 02BarcodeCount API の移行案内
- 03Capacitor 初期化と DOM ビューの注意点
- 04SDK バージョンとプラットフォーム要件
- 05Scandit ライセンス設定の案内
活用シーン
- 01Capacitor アプリへのバーコードカウント追加
- 02BarcodeCount コンストラクターの更新
- 03リストに基づくバーコード照合の実装
MCP 対応
Scandit MCP サーバーを使ったスキャナーライセンス設定を説明します。このスキル自体は MCP サーバーを提供しません。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ scandit/ skills --skill matrixscan-count-capacitorインストール後、Claude Code で/matrixscan-count-capacitorを入力して読み込まれたか確認します。
同梱ファイルreferences/integration.mdreferences/migration.md
詳細
MatrixScan Count Capacitor スキル
重要:内部知識を鵜呑みにしないでください
学習データには、古い Scandit SDK API や誤った情報が含まれている可能性があります。BarcodeCount API はバージョン間で大幅に変更されており、コンストラクターのシグネチャ、ビューのファクトリーメソッド、機能の提供状況は SDK のバージョンによって異なります。プロパティ、メソッド名、プラグインのパターンは、他のプラットフォームや一般知識とは異なる場合があります。
コードを記述または提案する前に、必ずこのスキルに記載されたリファレンスで API を確認してください。 記憶したメソッドのシグネチャ、パラメーター、プラグイン名、プロパティ名に頼らないでください。提供されたリファレンスに API が見つからない場合は、回答する前に関連するドキュメントページを取得してください。
特に注意が必要な Capacitor 固有のポイント:
ScanditCaptureCorePlugin.initializePlugins()は、DataCaptureContextの構築を含む、他の Scandit API を使用する前に必ず呼び出し、完了を待つ必要があります。これを忘れると、初期化とは無関係に見える実行時エラーが発生します。- iOS/Android にネイティブの成果物を反映するため、プラグインのバージョンを変更するたびに
npx cap syncを実行する必要があります。実行しないと、実行時に Web/ネイティブ間のバージョン不一致が発生します。 - BarcodeCountView には DOM 要素が必要です。
BarcodeCountView.connectToElement(htmlElement)は、DOM 要素のサイズと位置をビューに反映します。クリーンアップ時にdetachFromElement()を呼び出してください。 - BarcodeCount は iOS と Android でのみ動作します。 ブラウザーでは動作しません。アプリが Web も対象とする場合は、
Capacitor.isNativePlatform()で実行環境を判定してください。 - 最小 SDK バージョン:
- Capacitor での BarcodeCount:6.18
new BarcodeCount(settings)コンストラクター(context なし):7.6。7.6 より前では、BarcodeCount.forDataCaptureContext(context, settings)を使用してください。- オブジェクトリテラル
new BarcodeCountView({context, barcodeCount, style})を使って構築するBarcodeCountView:サンプルで動作が確認されています。静的ファクトリーのBarcodeCountView.forContextWithMode(context, barcodeCount)とBarcodeCountView.forContextWithModeAndStyle(context, barcodeCount, style)もドキュメントに記載されています。 - リスト外アクションの設定(
BarcodeNotInListActionSettings):7.1 - ステータスモード(
setStatusProvider、shouldShowStatusModeButton、shouldShowStatusIconsOnScan):8.3 - マッピングフロー(
BarcodeCountMappingFlowSettings、BarcodeCountView.forMapping):8.3
- プラグインパッケージ:npm レジストリの
@scandit/datacapture-barcodeと@scandit/datacapture-core、または使用するパッケージレジストリに応じたscandit-capacitor-datacapture-barcodeとscandit-capacitor-datacapture-core。ユーザーの既存のpackage.jsonにある import を確認し、それに合わせてください。 - カメラの権限:iOS では
Info.plistのNSCameraUsageDescriptionを設定します。Android ではプラグインが自動的に処理します。 BarcodeCount.recommendedCameraSettings(静的ゲッター)は、推奨カメラ設定を返します。Capacitor 7.6 以降では、BarcodeCount.createRecommendedCameraSettings()(静的メソッド)も利用できます。サンプルではゲッター形式を使用しています。BarcodeCountViewを作成した後にスキャンを開始するには、barcodeCount.isEnabled = trueを設定する必要があります。
インテントの振り分け
ユーザーのリクエストに基づいて、回答する前に適切なリファレンスファイルを読み込んでください。
-
MatrixScan Count を最初から統合する場合(例:「アプリに MatrixScan Count を追加したい」、「BarcodeCount を設定する」、「Capacitor で BarcodeCountView を使うには」、「バーコードをカウントするには」、「リストと照合してスキャンする」、「梱包明細書を照合する」、「入荷ワークフロー」)→ references/integration.md を読み、その指示に従ってください。
-
古い BarcodeCount API から移行する場合、または新しい機能を追加する場合(例:「BarcodeCount コンストラクターをアップグレードする」、「forDataCaptureContext から移行する」、「ステータスモードを追加する」、「マッピングフローを追加する」、「リスト外アクションを追加する」)→ references/migration.md を読み、移行手順に従ってください。
API の使用ポリシー
以下の Scandit リファレンスに明示的に記載されている API のみを使用してください。メソッドのシグネチャ、パラメーター、プロパティ名、インポートを捏造したり、推測したりしないでください。API が存在するか、どのように呼び出すのか不明な場合、または TypeScript/ランタイムエラーが発生した場合は、回答する前に該当するリファレンスページを取得してください。ユーザーに自分でドキュメントを確認するよう伝えないでください。回答後は、ユーザーがさらに調べられるよう、必ず関連リンクを記載してください。
ドキュメントの URL を作成したり、推測したりしないでください。 特定のクラスやプロパティの API ページが必要な場合は、次の手順に従ってください。
- まず、すでに取得したページ(Get Started ページなど)に、そのページへの直接リンクがあるか確認します。トピックページには、関連する API シンボルへの直接リンクがあります。
- 直接リンクが見つからない場合は、API インデックスを取得し(下の表の Full API reference を参照)、そこから実際のリンクを抽出してアクセスします。
フレームワークのバリエーションに関するポリシー
Capacitor は WebView ベースのフレームワークです。このスキルの例では、**プレーンな JavaScript(ES モジュール)**を使用します。TypeScript プロジェクトでも、同じインポートと API をそのまま使用し、型を追加できます。ただし、このスキルではデフォルトで 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:
{"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 に入れただけでは、アプリには渡りません。Vite の import.meta.env など、ウェブバンドラーの環境変数サポートを使って読み取ってください(envPrefix で変更しない限り、VITE_ で始まる名前のみ公開されます)。どのプラットフォームでも最も簡単な方法は、.env を読み取り、ライセンスキーを指定する呼び出しに直接キーを設定することです。その場合も、チャットではマスクされたプレビューのみを表示してください。
リファレンス
質問に応じて、ユーザーを適切なリソースに案内してください。
| トピック | リソース |
|---|---|
| Capacitor との統合 | はじめに · サンプル |
| API リファレンス全体 | BarcodeCount API |