プレビューの機能なのですが、「バーコードのスキャン関数を有効にする」という機能を有効にすると、「ScanBarcode」という関数が使用できるようになり、コントロールを使用しないでバーコードをスキャンできるようになります。
![]()
QR コードも読み込めるようだったので、QR コードの URL をブラウザで開くようなアプリを作ってみました。
UI としてはこのような感じで作っています。
![]()
QR コードの URL を認識した後に、確認無しに URL を開くのもいまいちかと思って、メッセージボックスのような UI を適当に作ってグループ化しています。
グループの表示の制御については「MsgVisible」という変数を設定しています。
QR コードの読み取りボタンには次のような数式を設定しています。
ClearCollect(
Input,
ScanBarcode()
);
If(
IsBlank(Text(First(Input).Value)),
Notify(
"QR コードが読み取れませんでした",
NotificationType.Error
),
If(
Find(
"http",
Text(First(Input).Value)
) = 1,
UpdateContext({MsgVisible: true}),
Notify(
Concatenate(
Text(First(Input).Value),
"は URL ではありません"
),
NotificationType.Information
)
)
)
QR コードの読み取りと、http で始まっているかを確認する数式ですね。
「メッセージボックスのテキスト」には次の数式を設定して、URL の情報を出力しています。
Concatenate(Text(First(Input).Value), " にアクセスします。よろしいですか?")
「OK ボタン」には、次の数式を設定して、URL にアクセスをします。
Launch(Text(First(Input).Value))
「Cancel ボタン」には、次の数式を設定して、メッセージボックスを非表示にしています。
UpdateContext({MsgVisible:false})
スクリーンの「OnVisible」には次の数式を設定して、メッセージボックスの初期状態の制御を。
UpdateContext({MsgVisible:false})
以上で設定は完了です。
はじめに、この QR コードを読み込ませてみます。
![]()
えろす財閥は http で始まっていない NG ワードなので、通知として URL ではないことが表示されます。
![]()
それでは、こちらの QR コードを読むとどうでしょう。
![]()
上記の QR コードには「https://google.co.jp」を設定していますので、URL として認識され、メッセージボックスが表示されます。
![]()
OK をクリックすると、ブラウザが起動し、URL にアクセスされます。
![]()
Cancel をクリックした場合は、メッセージボックスとして使用しているグループが非表示になります。
ScanBarcode はプレビュー中の機能ではありますが、関数としてバーコードリーダーが呼べるというのはなかなか面白いですね。