ここでは、Lightning Auraコンポーネントを使ってバーコードの読み取るアプリケーションを作る方法について説明します。作成したバーコードの読み取り画面は、Salesforceモバイルアプリケーションから表示して使用します。このアプリケーションをブラウザーから表示した場合は、読み取りボタンが無効となり、ユーザーは操作できません。
ここではユーザーが「読み取り開始」ボタンをタップしてから1個のバーコードを読み取る方法を説明します。複数のバーコードがあるとき、ユーザーはバーコードの個数と同じ回数だけ「読み取り開始」ボタンをタップします。
1回の操作で複数のバーコードを連続して読み取るには、WebServiceを使った連続読み取り機能の開発を参照してください。
gcbc:GcBarcodeScannerLTDemoコンポーネントは読み取り機能を試すデモコンポーネントです。後述のgcbc:GcBarcodeScannerLTコンポーネントを使って開発を進める前に、gcbc:GcBarcodeScannerLTDemoコンポーネントで読み取り機能を試すことができます。
gcbc:GcBarcodeScannerLTDemoコンポーネントを表示するには、Salesforceの「Lightningアプリケーションビルダー」を使います。
次に、作成したLightningアプリをSalesforceモバイルアプリケーションのナビゲーションメニューに追加します。
Salesforce Classicの場合:
Lightning Experienceの場合:
動作を確認します。次の手順で、このページに表示されているQRコードを読み取れるか確認してください。
gcbc:GcBarcodeScannerLTDemoコンポーネントの属性については、こちらを参照してください。
gcbc:GcBarcodeScannerLTコンポーネントによって、独自の読み取り開始ボタンを持つアプリケーションを開発できます。gcbc:GcBarcodeScannerLTコンポーネントを使用するには、新しいLightning Auraコンポーネントを作成し、そのLightning Auraコンポーネントをアプリケーションに配置します。
作成したアプリケーションを実行すると、ユーザーは「読み取り開始」ボタンをRayBarcode Readerモバイルアプリケーションによるバーコードの読み取り画面を開くことができます。バーコードまたは二次元コードが正常に読み取りできた場合、スマートフォンはフィードバックとしてビープ音を再生します。読み取られた値は、scanResults属性から取得することができます。同時に、scannedTypes属性には読み取られたバーコードの種類に関する情報が含まれます。scanResults属性とscannedTypes属性の両方は、返されたバーコード値が複数のレコードである場合、複数のレコードを分割するためのカンマを含む文字列です。読み取りが終了すると、onScanCompleteイベントがトリガーされます。
gcbc:GcBarcodeScannerLTコンポーネントを使用する手順は次の通りです。
「MyFirstBarcodeScanner.cmp」に次のコードを入力し、キーボードの「Ctrl + S」を押下して保存する。Macの場合は、CtrlキーをCommandキー(⌘キー)に読み替えてください。
<aura:component implements="flexipage:availableForAllPageTypes" access="global">
<aura:attribute name="singleScanResult" type="String"/>
<aura:attribute name="singleScanResultOutout" type="String"/>
<h1>読み取りを実行する</h1>
<br/>
<gcbc:GcBarcodeScannerLT
aura:id="single-scan-button"
buttonText="読み取り開始"
scanResults="{!v.singleScanResult}"
onScanComplete="{!c.onSingleScanComplete}"
/>
<br/>
<ui:outputText value="{!v.singleScanResultOutout}"/>
</aura:component>
右の一覧から「CONTROLLER」をクリックする。
「MyFirstBarcodeScannerController.js」に次のコードを入力し、キーボードの「Ctrl + S」を押下して保存する。このコードはonScanCompleteイベントをハンドルして読み取り終了通知を受け取ります。サンプルに対して定義された onSingleScanCompleteメソッドは、次のようになります。
({
onSingleScanComplete: function (component, event, helper) {
var result = event.getParam("success");
if (result){
var data = component.get("v.singleScanResult");
// データがデコードされていない場合、
// コンマ(,)はエスケープ文字列(%2C)になります
var decodedData = decodeURIComponent(data);
component.set("v.singleScanResultOutout", decodedData);
}else{
alert("読み取り失敗");
}
},
})
「開発者コンソール」のウィンドウを閉じる。
「Lightningアプリケーションビルダー」でアプリケーションを新規に作成し、作成したLightning Auraコンポーネントを配置します。
gcbc:GcBarcodeScannerLTコンポーネントの属性やイベントについては、こちらを参照してください。
Copyright © 2024 MESCIUS inc. All rights reserved.