Monaca Docs
検索…
バーコードスキャナー
テスト環境(バージョン番号): 1.0.0
このプラグインでは、デバイスのカメラでバーコードやQRコードを読み取り、 抽出された文字列を取得します。

プラグインID

@monaca/monaca-plugin-scan-barcode

プラグインの追加方法

このプラグインを使用する場合には、Monaca クラウド IDE の [ Cordova プラグインの管理 ] 上で、 Barcode Scanner プラグインを有効にします。

対象プラットフォーム

ビルド環境

  • Cordova 11.0.0 以降
  • Android プラットフォーム 10.1.2 以降
  • iOS プラットフォーム 6.2.0 以降

動作環境

  • Android 5.1以降 (9以降 推奨)
  • iOS 11以降 (13以降 推奨)

対応するバーコードの種類

  • QR_CODE
  • EAN_8
  • EAN_13

APIの解説

monaca.BarcodeScanner.scan()

monaca.BarcodeScanner.scan(successCallback, failCallback)
  • scan()を呼び出すとスキャナ画面に遷移します。
  • 検出されたバーコードが示す文字列が枠の下に表示されます。
  • 文字列をタップすると元の画面に戻り、文字列とバーコードの種類が返されます。
  • 文字列を選択していない状態で元の画面に戻ると検出キャンセルとなります。 iOSの場合は「閉じる」(画面上のX)ボタン、Androidの場合は「戻る」ボタンで元の画面へ遷移します。

successCallback

successCallback(result)

result: 以下のデータが返されます。
{
data: {
"text": "xxxxxxxx" // 検出された文字列
"format": "QR_CODE" // バーコードの種類
},
cancelled: false // 検出がキャンセルされたかどうか
}

failCallback

failCallback(error)

error: エラーメッセージ(文字列)
message
description
permission denied
camera permission is not granted.

monaca.BarcodeScanner.scan((result) => {
if (result.cancelled) {
// scan cancelled
} else {
// scan
const detected_text = result.data.text;
const detected_format = result.data.format;
}
}, (error) => {
// permission error
const error_message = error;
});

iOS 特有の動作

iOS 10以降、プライバシーに関連するデータにアクセスする場合は、 info.plist にデータにアクセスする説明が必須になります。この説明文は、アクセス許可ダイアログに表示されます。
このプラグインでは、次の使用説明が必要になります。
  • NSCameraUsageDescription :アプリがユーザーのカメラにアクセスする理由を記述します
設定を info.plist に追加するには、config.xml ファイルの <edit-config> タグに以下のように設定します。
<platform name="ios">
<edit-config target="NSCameraUsageDescription" file="*-Info.plist" mode="merge">
<string>need camera access to scan barcode</string>
</edit-config>
</platform>

Android 特有の動作

内部で使用するライブラリandroidx.camera:camera-viewcompileSDKVersion>=31を必要としています。 このため、Monaca クラウド IDE の [ Androidアプリ設定 ] でターゲットSDKバージョンを31以上に設定する必要があります。