PowerAppsをつかって爆速でQRコードを読み取ろう
概要
PowerAppsのスキャン関数を利用してQRコードを読み取るアプリを作ろうと思います。
Android版でのみ動作を確認しています。
※現在(2018/11/16)時点でプレビュー版の機能ですので何かしらの変更があり動かなくなる可能性がありますがあらかじめご了承ください。
注意
この記事はすでに古いものになっています。
現在は ios、Android用にバーコードスキャンコントロール(ボタン)が追加されましたのでそちらをご利用ください。
準備
- PowerAppsが利用できる環境 (Office365 F1以上 や プラン1、プラン2、試用版でも構いません)
- QRコード (お好きな文字列が入ったQRコードを用意しましょう。ない場合は以下をご利用ください)
動作イメージ
ボタン押下→QR読み取り→読み取った値が表示+成功 or 失敗の通知
を実装します。
設定
アプリの設定→詳細設定→実験的な機能の中のバーコードのスキャン関数を有効にするをオンにします。
読み取り実装
空のアプリを作成後ボタン、ラベルを挿入し名前をそれぞれ
変更前 | 変更後 |
---|---|
Label1 | ScanLabel |
Button1 | ScanButton |
とわかりやすいように変更しました。
次にスキャン関数を ScanButton に対して実装します
ScanButtonを選択し、OnSelect式に対して次のような数式を実装します。
ClearCollect(
hoge,
ScanBarcode()
);
If(
IsBlank(Text(First(hoge).Value)),
Notify(
"QR コードが読み取れませんでした",
NotificationType.Error
),
Notify(
Text(First(hoge).Value),
NotificationType.Information
)
)
それぞれに関して上から説明します。
ClearCollect
変数宣言です。この関数ではClear関数 の後に Collect関数が実装されます。
つまり今回の使い方だと、 hoge 変数に対して ScanBarcode関数の戻り値(結果)を挿入している形になります。
Clear
変数の中身を空にします。
Collect
変数に対して値を追加します。
ScanBarcode
こちらの関数が今回の肝です。QR読み取りを起動し、読み取った結果をテーブルで返します。
If
条件が true の場合とそうでない場合とで異なる結果を返すかアクションを実行します。
if(条件,true,false)といった形になります。
IsBlank
値が空白であるかどうかを調べて true false を返します。
ここでいう空白とはwhitespaceや空の事ではなく正確には "値がない" または "不明な値" の場合という点にご注意ください。
First
テーブルの最初のレコードを返します。
今回は ScanBarcode で返ってきたテーブルの最初の行の値を取得している形になります。
この値が空白の場合Notify関数(Error)を実行します。
Notify
アラートを実行します。
×ボタンで閉じるか時間経過で自動的に消えます。
NotificationType
Notifyの状態(色)を決めます。
今回利用した Error Information 以外に Worning Success があります。
指定しない場合は Information となります。
表示の実装
最後にラベルを実装します。
先ほど結果はhoge変数に入っている為、それをそのまま使います。
ScalLabelのTextに
Concatenate("結果:", Text(First(hoge).Value))
を実装します。
Concatenate
文字列を連結します。
カンマ区切りでいくつでも連結できます。
実行する
Android端末でGooglePlayからPowerAppsをダウンロードし、ログインを行い起動します。
downloadに時間がかかったり、読み込みから失敗するときもありますので、何度か開きなおすことをお勧めします。
ボタンを押すとcameraの許可が求められますので許可してください。
無事読み取れましたね。
失敗通知を出したい場合はQR読み取りを戻るボタン等で中止すると表示確認できます。
以上で終了です。
非常に簡単に実装できますので、社内でQRを使ったアプリを使う場合はぜひ参考にしてみてください。(利用者は各プランに入る必要があります詳細はこちら)
参考
Author And Source
この問題について(PowerAppsをつかって爆速でQRコードを読み取ろう), 我々は、より多くの情報をここで見つけました https://qiita.com/taku_maru/items/a4850c7d45c37a24efd4著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .