barcode-capture-capacitor について
CapacitorアプリへのScandit BarcodeCaptureの導入や移行を支援するスキルです。タスク別の参照資料を案内し、API確認、プラグイン初期化、ネイティブ環境の要件を重視します。
主な機能
- 01導入・更新・置換タスクの振り分け
- 02参照資料に基づくScandit API確認
- 03プラグイン初期化とネイティブ要件の説明
- 04ライセンスキー設定の案内
活用シーン
- 01Capacitorアプリへのバーコードスキャン導入
- 02Scandit SDKのバージョン更新
- 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.mdmigration.mdthird-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 ページが必要な場合:
- まず、すでに取得したページ(例:Advanced Configurations ページ)に、そのページへの直接リンクが含まれているか確認してください。トピックページには関連する API シンボルへの直接リンクがあります。取得を依頼するときは、コンテンツとあわせてリンクも必ず含めるようにしてください。
- 直接リンクが見つからない場合は、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 が原因でユーザーを待たせてはいけません。
-
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でキーがトライアルではないと示された場合は、取得する前にユーザーに確認してください。チャット上で表示するのは、マスキングしたプレビューに限ってください。キー全体を決して表示しないでください。 -
接続されていない場合 — ユーザーに一度だけ、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 の統合 | はじめに · サンプル |
| 高度なトピック(カスタムフィードバック、ビューファインダー、位置選択、スキャン意図) | 高度な設定 |
| SDK メジャーバージョン間の移行 | 6 → 7 · 7 → 8 |
| API リファレンス全体 | BarcodeCapture API |