mcpField
M
matrixscan-count-rn

matrixscan-count-rn

github.com/scandit開発2048 回インストール5 日前に更新
リポジトリ

matrixscan-count-rn について

React Native アプリで Scandit MatrixScan Count を統合・保守するコーディングエージェント向けスキルです。統合・移行資料を案内し、バージョン別 API と設定の制約を示します。

主な機能

  1. 01統合・移行リクエストの振り分け
  2. 02資料に基づく API 確認
  3. 03バージョン別 API 制約の記載
  4. 04React Native の設定上の注意
  5. 05ライセンスキー設定時の注意

活用シーン

  1. 01React Native アプリへの MatrixScan Count 導入
  2. 02BarcodeCount API の移行
  3. 03リストに照らしたバーコードのスキャンと計数

MCP 対応

Scandit MCP サーバーを使ったスキャナーライセンスの設定と、対象となるトライアルキーの取得方法を説明します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/scandit/skills --skill matrixscan-count-rn

インストール後、Claude Code で/matrixscan-count-rnを入力して読み込まれたか確認します。

同梱ファイルreferences/integration.mdreferences/migration.md

詳細

MatrixScan Count React Native スキル

重要:内部知識を信用しないでください

学習データに、古くなった Scandit SDK API や誤った情報が含まれている可能性があります。BarcodeCount* API の仕様はメジャー SDK バージョン間で大幅に変更されます。コンストラクターのシグネチャが変わり、新しいプロパティが追加され、React Native プラグインの仕様(インポート、ネイティブリンク、pod install、パッケージ名)も進化しています。

コードを記述または提案する前に、必ずこのスキルで提供されているリファレンスで API を確認してください。 記憶に頼ってメソッドのシグネチャ、パラメーター、プラグイン名、プロパティ名を使わないでください。提供されているリファレンスで API が見つからない場合は、回答する前に該当するドキュメントページを取得してください。

注意すべき React Native 固有の落とし穴:

  • DataCaptureContext.initialize(licenseKey) は、ほかの Scandit API を使う前に必ず1 回だけ呼び出してください。この呼び出しによって DataCaptureContext.sharedInstance が設定されます。これは、ほかのすべての機能が読み取るシングルトンです。複数のコンテキストを作成しないでください。
  • iOS では、Scandit パッケージのインストールまたはアップグレードのたびに、npx [email protected](または cd ios && pod install)を実行する必要があります。Android は Gradle を介して自動リンクされるため、手動の作業は必要ありません。
  • Metro のバンドラーキャッシュによって、Scandit パッケージのアップグレードが反映されないことがよくあります。プラグインのバージョンを上げた後に再ビルドしても古い挙動が見られる場合は、Metro を --reset-cache 付きで起動してください。
  • BarcodeCountView は React コンポーネント(JSX としてレンダリング)です。barcodeCount と context を props として渡してください。ビューをコンテキストに手動でアタッチしないでください。props によって処理されます。BarcodeCountView では、明示的な start() 呼び出しは必要ありません(BarcodeArView とは異なります)。
  • BarcodeCountView の listener と uiListener は、ref コールバックを介して命令的に設定します:view.listener = ... および view.uiListener = ...。
  • iOS(ios/<App>/Info.plist の NSCameraUsageDescription)と Android(PermissionsAndroid による実行時の許可要求)の両方で、カメラの権限が必要です(プラグインがマニフェストの権限を自動的に宣言します)。
  • コンテキスト引数のない new BarcodeCount(settings) コンストラクターは、react-native=7.6 から利用できます。以前の統合では BarcodeCount.forDataCaptureContext(context, settings) を使用していました。対象プロジェクトが古いプラグインを使用している場合は、ファクトリーを使ってください。≥7.6 のコンストラクターを使用する場合は、dataCaptureContext.addMode(barcodeCount) でモードをアタッチしてください。
  • BarcodeCountStatusProvider、setStatusProvider、shouldShowStatusModeButton、shouldShowStatusIconsOnScan、TextForBarcodesNotInListDetectedHint、TextForScreenCleanedUpHint、TextForClusteringGestureHint、StatusModeButtonAccessibilityLabel/Hint、StatusModeButtonContentDescription は、すべて react-native=8.3+ が必要です。
  • BarcodeCountNotInListActionSettings と BarcodeCountView の barcodeNotInListActionSettings には、react-native=7.1+ が必要です。
  • tapToUncountEnabled には、react-native=7.0+ が必要です。
  • Android の enableHardwareTrigger(keyCode) には、react-native=7.1+ とデバイス API レベル ≥28 が必要です。
  • hardwareTriggerEnabled(iOS の音量ボタントリガー)には、react-native=7.1+ が必要です。
  • BarcodeCountStatusProvider.onStatusRequested(barcodes, callback) はコールバックベースです。await しないでください。結果を渡すには callback.onStatusReady(result) を呼び出してください。コールバックのパターンは、プラットフォームから見ると非同期です。
  • BarcodeCountSettings.clusteringMode には、react-native=8.3+ が必要です。
  • BarcodeCountSettings.disableModeWhenCaptureListCompleted には、react-native=8.3+ が必要です。
  • BarcodeCountSession.recognizedBarcodes(配列 API)には、react-native=7.0+ が必要です。BarcodeCountListener の didScan コールバックからセッションを受け取れます。
  • BarcodeCount.createRecommendedCameraSettings() には、react-native=7.6+ が必要です。

インテントルーティング

ユーザーのリクエストに基づいて、応答する前に適切なリファレンスファイルを読み込んでください。

  • MatrixScan Count を一から統合する場合(例:「アプリに MatrixScan Count を追加する」「BarcodeCount をセットアップする」「React Native で BarcodeCountView を使う方法」「複数のバーコードをスキャンしてカウントする方法」「リストと照合してスキャンする」「カウントビューをカスタマイズする」「ステータスオーバーレイを追加する」「ライフサイクルまたはクリーンアップ」)→ references/integration.md を読み、そこに記載された手順に従ってください。
  • 旧 forDataCaptureContext ファクトリーから新しいコンストラクターへ移行する場合、または Status/MappingFlow/NotInList API を採用する場合(例:「forDataCaptureContext から移行する」「BarcodeCount コンストラクターをアップグレードする」「ステータスモードを追加する」「マッピングフローを採用する」「not-in-list アクションを有効にする」)→ references/migration.md を読み、そこに記載された手順に従ってください。

API の使用ポリシー

以下の Scandit リファレンスに明記されている API のみを使用してください。メソッドのシグネチャ、パラメーター、プロパティ名、インポートを創作したり、推測したりしないでください。API が存在するか、どのように呼び出すか不明な場合、または TypeScript/実行時エラーが発生した場合は、応答する前に該当するリファレンスページを取得してください。ユーザーに自分でドキュメントを確認するよう案内しないでください。回答後は、ユーザーがさらに詳しく確認できるよう、必ず関連リンクを含めてください。

ドキュメントの URL を組み立てたり、推測したりしないでください。 特定のクラスまたはプロパティの API ページが必要な場合は、次の手順に従ってください。

  1. まず、すでに取得したページに直接リンクがあるか確認してください。トピックページには、関連する API シンボルへの直接リンクがあります。
  2. 直接リンクが見つからない場合は、API インデックス(以下の表の Full API reference を参照)を取得し、そこから実際のリンクを抽出して開いてください。

URL の構造は SDK のバージョンやパッケージパスによって異なり、推測すると 404 エラーになります。

フレームワークのバリエーションに関するポリシー

React Native アプリでは、クラスコンポーネントも関数コンポーネントも使用できます。このスキルの例では、現在の React Native の慣例に沿ったフックを使う関数コンポーネントを使用します。対象プロジェクトに古いクラスコンポーネントが残っている場合でも、新しい MatrixScan Count のコードは関数コンポーネントで記述してください。アプリのほかの部分のコンポーネントスタイルを書き換える必要はありませんが、BarcodeCount* の統合自体は現在の慣用的な方法(useRef、useEffect、useCallback)に従ってください。

例は TypeScript(.tsx)です。対象プロジェクトがプレーンな JavaScript(.js/.jsx)の場合は、型注釈を削除し、同じインポートと構造を維持してください。

ライセンスキー

スキャンには Scandit のライセンスキーが必要です。このスキルでは、ライセンス製品は native、ライセンスプラットフォームは ios と android です。

次の手順を順番に進めてください。MCP が原因でユーザーを待たせてはいけません。

  1. Scandit MCP サーバーが接続されている場合 — 製品に native、プラットフォームに ios と android、app_identifier(アプリのバンドル ID またはアプリケーション ID。Web の場合は本番ドメインで、localhost は不可)、env_var に SCANDIT_LICENSE_KEY を指定して ensure_scanner_setup を呼び出します。返されたコマンドは実行しないでください。次に、その結果または list_license_keys から取得したキーの ID を指定して get_license_key を呼び出します。list_license_keys でキーがトライアルではないことが示された場合は、取得する前にユーザーに確認してください。チャットではマスクしたプレビューのみを表示し、キー全体を出力してはいけません。

  2. 接続されていない場合 — ユーザーに、MCP クライアントでリモート Scandit MCP サーバー https://ssl.scandit.com/mcp に接続できることを一度だけ伝え、その後手順 1 を続けてください。MCP クライアントの設定を自分で編集してはいけません。

    認証はブラウザー経由のため、ヘッドレス環境または CI ではサポートされません。サーバーが発行するのはトライアルキーのみです。本番ライセンスを作成、取り消し、変更することはありません。

  3. ユーザーが断る場合、または MCP クライアントがない場合 — ユーザー自身で https://ssl.scandit.com からキーを生成し(アカウントがまだない場合は https://ssl.scandit.com/dashboard/sign-up?p=test)、そのキーを貼り付けてもらいます。

次に、キーをコードに設定します:ライセンスキーを呼び出す箇所で、プレースホルダーをキーに置き換えてください。キーは get_license_key が返したもの、またはユーザーが貼り付けるか提示したものを使用します。チャットでは引き続きマスクしたプレビューのみを表示してください。キーを探すためにプロジェクト、そのファイル、または環境を検索してはいけません。

参考資料

質問に応じて、適切なリソースをユーザーに案内してください。

トピックリソース
React Native の統合はじめに
API リファレンス全体BarcodeCount API

コメント