mcpField
B
barcode-capture-capacitor

barcode-capture-capacitor

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

barcode-capture-capacitor について

CapacitorアプリへのScandit BarcodeCaptureの導入や移行を支援するスキルです。タスク別の参照資料を案内し、API確認、プラグイン初期化、ネイティブ環境の要件を重視します。

主な機能

  1. 01導入・更新・置換タスクの振り分け
  2. 02参照資料に基づくScandit API確認
  3. 03プラグイン初期化とネイティブ要件の説明
  4. 04ライセンスキー設定の案内

活用シーン

  1. 01Capacitorアプリへのバーコードスキャン導入
  2. 02Scandit SDKのバージョン更新
  3. 03BarcodeCaptureへの他社スキャナー移行

MCP 対応

Scandit MCPサーバーを使ったスキャナー設定とライセンスキー取得に対応し、リモートサーバーの接続方法も説明します。

インストール

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

$npx skills add https://github.com/scandit/skills --skill barcode-capture-capacitor

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
integration.md
migration.md
third-party-migration.md

詳細

BarcodeCapture Capacitor スキル

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

学習データに含まれる Scandit SDK API は、古くなっていたり、誤っていたりする可能性があります。BarcodeCapture API は SDK のメジャーバージョン間で変更されます。プロパティの名前が変わったり、削除されたり、構成が変更されたりするほか、Capacitor プラグインのインターフェイス(インポート、プラグインの初期化、ネイティブ同期の手順)も変化しています。

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

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

  • ScanditCaptureCorePlugin.initializePlugins() は、DataCaptureContext の構築を含む、ほかの Scandit API を使う前に必ず呼び出し、完了を待つ必要があります。これを忘れると、初期化とは関係ないように見えるランタイムエラーが発生します。
  • iOS/Android にネイティブ成果物を反映するため、プラグインのバージョンを変更するたびに npx cap sync を実行する必要があります。実行しないと、実行時に Web とネイティブのバージョンが不一致になります。
  • BarcodeCapture は DataCaptureView に描画され、このビューは view.connectToElement(...) を介して DOM 要素に接続されます。ビュー自体はネイティブのオーバーレイですが、サイズと位置は DOM コンテナーによって決まります。認識されたバーコードを可視化するには、BarcodeCaptureOverlay を作成してビューに追加する必要があります。
  • カメラは別のコンポーネントです。Camera.default(または Camera.withSettings(BarcodeCapture.createRecommendedCameraSettings()))を使い、context.setFrameSource(camera) で設定したあと、camera.switchToDesiredState(FrameSourceState.On) で起動します。
  • スキャンを処理する間はモードを無効にしてください。Capacitor では、didScan コールバックの間、後続のフレーム処理がブロックされます。didScan 内でデータベースの検索、画面遷移、ネットワーク処理など、何らかの処理を行う場合は、最初に barcodeCapture.isEnabled = false を設定し、処理を実行してから再び有効にしてください。これは Capacitor に関する仕様として文書化されています。
  • BarcodeCapture が描画されるのはネイティブプラットフォーム(iOS、Android)のみです。アプリが Capacitor の Web ビルドも対象としている場合は、Capacitor.isNativePlatform() を使って初期化を制御してください。

インテントに応じたリファレンスの選択

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

  • BarcodeCapture を新規に組み込む(例:「アプリに BarcodeCapture を追加する」「バーコードスキャンを設定する」「Capacitor で BarcodeCapture を使う方法」「オーバーレイを接続する」「カメラのライフサイクルを処理する」)→ references/integration.md を読み、その指示に従ってください。
  • 既存の BarcodeCapture 組み込みを移行またはアップグレードする(例:「v6 から v7 にアップグレードする」「BarcodeCapture を移行する」「Scandit プラグインを v8 に更新する」「SDK バージョン間の変更点を確認する」)→ references/migration.md を読み、その指示に従ってください。
  • サードパーティ製スキャナーを置き換える(例:「@capacitor-mlkit/barcode-scanning/ML Kit から Scandit に切り替える」「BarcodeScanner.startScan と barcodesScanned を BarcodeCapture に置き換える」)→ references/third-party-migration.md を読み、その指示に従ってください。

API の使用ポリシー

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

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

  1. まず、すでに取得したページ(例:Advanced Configurations ページ)に、そのページへの直接リンクが含まれているか確認してください。トピックページには関連する API シンボルへの直接リンクがあります。取得を依頼するときは、コンテンツとあわせてリンクも必ず含めるようにしてください。
  2. 直接リンクが見つからない場合は、API インデックス(以下の表の Full API reference を参照)を取得し、そこから実際のリンクを抽出して開いてください。

URL の構造は SDK のバージョンやプラグインのパス(例:api/ui/ サブディレクトリ)によって異なるため、推測すると 404 エラーになります。

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

Capacitor は WebView ベースのフレームワークです。このスキルの例では、**プレーンな JavaScript(ES モジュール)**を使用します。TypeScript プロジェクトでも同じインポートと API をそのまま使用できます。型を追加するだけです。ただし、このスキルでは、デフォルトで TypeScript プロジェクトを前提としません。対象プロジェクトが明らかに TypeScript(.ts ファイル、tsconfig.json)の場合は、最終出力を TypeScript の構文に合わせてください。それ以外の場合は、プレーンな JS を使用してください。

ライセンスキー

スキャンには 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 が返したキー、またはユーザーが貼り付けるか伝えたキーを書き込んでください。チャット上で表示するのは、引き続きマスキングしたプレビューに限ってください。プロジェクト、そのファイル、または環境からキーを検索してはいけません。

リファレンス

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

トピックリソース
Capacitor の統合はじめに · サンプル
高度なトピック(カスタムフィードバック、ビューファインダー、位置選択、スキャン意図)高度な設定
SDK メジャーバージョン間の移行6 → 7 · 7 → 8
API リファレンス全体BarcodeCapture API

コメント