barcode-capture-cordova について
CordovaアプリへのScandit BarcodeCaptureの導入や移行を支援するスキルです。参照資料に基づくAPI確認と、Cordova固有の初期化やビュー設定を重視します。
主な機能
- 01導入・更新・置換タスクの振り分け
- 02参照資料に基づくScandit API確認
- 03Cordovaの初期化とビュー設定の説明
- 04ライセンスキー設定の案内
活用シーン
- 01Cordovaアプリへのバーコードスキャン導入
- 02Scandit SDKのバージョン更新
- 03BarcodeCaptureによる他社スキャナーの置換
MCP 対応
Scandit MCPサーバーを使ったスキャナー設定とライセンスキー取得に対応し、リモートサーバーの接続方法も説明します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ scandit/ skills --skill barcode-capture-cordovaインストール後、Claude Code で/barcode-capture-cordovaを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/integration.mdmigration.mdthird-party-migration.md詳細
BarcodeCapture Cordova スキル
重要:内部知識を信頼しないでください
トレーニングデータに、古くなった Scandit SDK API や誤った API が含まれている可能性があります。BarcodeCapture API はメジャー SDK バージョン間で大幅に変更されます。キャプチャモードのファクトリーがコンストラクターに置き換わったり、リスナーのシグネチャが変わったりしており、Cordova プラグインの仕様(グローバルな Scandit 名前空間、プラグインのインストールコマンド、deviceready のタイミング)も進化しています。
コードを作成または提案する前に、必ずこのスキルで提供されているリファレンスを参照して API を確認してください。 記憶にあるメソッドのシグネチャ、パラメーター、プロパティ名に頼らないでください。提供されたリファレンスに API が見つからない場合は、回答する前に該当するドキュメントのページを取得してください。
注意すべき Cordova 固有のポイント:
- Scandit SDK はグローバルな
window.Scanditオブジェクトを通じて公開されます。npm パッケージ名(scandit-cordova-datacapture-*)はプラグインのマニフェストであり、実行時の ES モジュールではありません。WebView で実行するユーザーコードにimport { ... } from 'scandit-cordova-datacapture-*'を出力しないでください。代わりにScandit.Xを使用してください(型定義には必要に応じてglobal.d.tsを使用できます)。パッケージから直接インポートするのは、Ionic/Angular/Webpack でバンドルされたプロジェクトに限ります。 - Scandit API を使用する際に安全なゲートは
document.addEventListener('deviceready', ...)だけです。モジュールの読み込み時に Scandit の呼び出しを実行しないでください。Cordova のブリッジがまだ準備できていないため、失敗します。 - プラグインのバージョンを変更した後は、新しいネイティブアーティファクトを反映するために
cordova prepareを実行してください(必要に応じてプラットフォームも再インストールしてください)。これを省くと、実行時にバージョン不一致が発生します。 - BarcodeCapture でカメラプレビューを表示するには、表示されている DataCaptureView が必要です。SparkScan と異なり、ネイティブオーバーレイはありません。
view.connectToElement(...)を使ってDataCaptureViewを HTML 要素にマウントし、そのビューの上にBarcodeCaptureOverlayを追加して、認識したバーコードを描画します。どちらかを忘れると、「スキャンは動作するのに何も表示されない」という問題が最もよく発生します。 didScanコールバック内では、1 フレーム以上かかる UI 処理を行う前に、モードを無効化します(barcodeCapture.isEnabled = false)。リスナーの実行中はフレーム処理がブロックされるため、時間のかかる処理をここで行うとカメラが停止し、スキャンが重複する可能性があります。
インテントの振り分け
ユーザーのリクエストに基づいて、回答する前に適切なリファレンスファイルを読み込んでください。
- BarcodeCapture を新規に統合する(例:「アプリに BarcodeCapture を追加して」「バーコードスキャンを設定して」「Cordova で BarcodeCapture を使う方法は?」「カメラプレビューを表示する方法は?」)→ references/integration.md を読み、そこに記載された指示に従ってください。
- 既存の BarcodeCapture 統合を移行またはアップグレードする(例:「v6 から v7 にアップグレードして」「BarcodeCapture を移行して」「Scandit プラグインを v8 に上げて」「SDK バージョン間で何が変わった?」)→ references/migration.md を読み、そこに記載された指示に従ってください。
- サードパーティー製スキャナーを BarcodeCapture に置き換える(例:「phonegap-plugin-barcodescanner から Scandit に移行して」「cordova.plugins.barcodeScanner.scan を BarcodeCapture に置き換えて」「Cordova のバーコードスキャナープラグインを Scandit に差し替えて」)→ references/third-party-migration.md を読み、そこに記載された指示に従ってください。
API の使用ポリシー
以下の Scandit リファレンスに明記されている API のみを使用してください。メソッドシグネチャ、パラメーター、プロパティ名、インポートを作り出したり、推測したりしないでください。API が存在するか、どのように呼び出すのか不明な場合、または実行時エラーが発生した場合は、回答する前に該当するリファレンスページを取得してください。ドキュメントを自分で確認するようユーザーに伝えないでください。回答後は、ユーザーが詳細を確認できるよう、必ず関連リンクを記載してください。
ドキュメントの URL を作成したり、推測したりしないでください。 特定のクラスやプロパティの API ページが必要な場合は、次の手順に従ってください。
- まず、取得済みのページに該当する API への直接リンクがあるか確認します。トピックページには、関連する API シンボルへの直接リンクがあります。
- 直接リンクが見つからない場合は、API インデックスを取得し(下の表の完全な API リファレンスを参照)、そこから実際のリンクを抽出してたどります。
URL の構造は SDK のバージョンやプラグインのパスによって異なり、推測すると 404 になります。
フレームワークのバリアントに関するポリシー
Cordova は WebView ベースのフレームワークです。このスキルの例では、プレーンな JavaScript(公式の BarcodeCaptureSimpleSample にあるような、必要に応じた JSDoc 型ヒント付き)を使用します。同じ API は TypeScript でも動作します。global.d.ts 宣言ファイル(references/integration.mdで説明)を追加し、TypeScript の構文で記述してください。このスキルでは、デフォルトで 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 が返したキー、またはユーザーが貼り付けたか提示したキーです。チャットでは引き続きマスクされたプレビューのみを表示してください。プロジェクト、そのファイル、環境からキーを探してはいけません。
リファレンス
質問に応じて、ユーザーを適切なリソースへ案内してください。
| トピック | リソース |
|---|---|
| Cordova の統合 | はじめに · サンプル |
| 高度なトピック(カスタムフィードバック、ビューファインダー、スキャンエリア、位置選択、複合コード) | 高度な設定 |
| SDK のメジャーバージョン間の移行 | 6 → 7 · 7 → 8 |
| 完全な API リファレンス | BarcodeCapture API |