SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

バーコードスキャン関数 (プレビュー) で QR コードの URL を読み取ってブラウザで開いてみる

without comments

プレビューの機能なのですが、「バーコードのスキャン関数を有効にする」という機能を有効にすると、「ScanBarcode」という関数が使用できるようになり、コントロールを使用しないでバーコードをスキャンできるようになります。

image
QR コードも読み込めるようだったので、QR コードの URL をブラウザで開くようなアプリを作ってみました。

UI としてはこのような感じで作っています。
image
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 コードを読み込ませてみます。
image
えろす財閥は http で始まっていない NG ワードなので、通知として URL ではないことが表示されます。
image
それでは、こちらの QR コードを読むとどうでしょう。

image
上記の QR コードには「https://google.co.jp」を設定していますので、URL として認識され、メッセージボックスが表示されます。
image
OK をクリックすると、ブラウザが起動し、URL にアクセスされます。
image
Cancel をクリックした場合は、メッセージボックスとして使用しているグループが非表示になります。
ScanBarcode はプレビュー中の機能ではありますが、関数としてバーコードリーダーが呼べるというのはなかなか面白いですね。

Written by Masayuki.Ozawa

9月 11th, 2018 at 11:34 pm

Posted in PowerApps

Tagged with

Leave a Reply