PowerAppsのLaunch関数でアプリから直接、メール、テキスト、通話をし、Webページを開く

PowerAppsのLaunch関数はアプリから自動で指定したWebページを開けたり、直接Eメールやテキストを送る、また通話を始められる便利な関数です。この記事では微妙に違う各機能の引数の書き方も明記しています。

PowerAppsのLaunch関数でアプリから直接、メール、テキスト、通話をし、Webページを開く

(動画時間:9:51)

 

PowerAppsのLaunch関数とは、何ができるのか?

 

こんにちは、リーンシグマ、ブラックベルトのマイク根上です。
業務改善コンサルをしています。

 

今日はこの動画リクエストからです。

場所ボタン 動画リクエスト

「場所ボタンの処理(現在地を地図に表示)方法についての動画を作っていただけると幸いです。」

 

Sweet Cookieさんリクエストありがとうございました。
先日PowerAppsで勤怠管理アプリを作って、
その紹介動画に対してこのコメントを頂きました。
⇒「PowerApps で本格的な勤怠管理アプリを作る【テレワーク対策】」

 

勤怠管理アプリの退勤ボタン

 

上図がそのアプリなのですが、
下の方の「出退勤記録表」内に「場所」と
書かれたボタンがあり、それをタップすると
その日に打刻した場所をグーグルマップ上で表示します。
そのボタンの機能の詳しい作り方を聞かれているのです。

 

そのボタンの「OnSelect」属性を見ると、
それにはLaunch関数を使っています。

 

「OnSelect」属性 = 
Launch(“https://www.google.com/maps/place/” & ThisItem.Start_GPS_Ido & “,” & ThisItem.Start_GPS_Keido)

 

Launchは英語で「起動する」や
ロケットなんかを「打ち上げる」などの意味があり、
このLaunch関数は端末内の他の機能を
「起動して」アプリから自動で:

  • 指定したWebページをブラウザー上で開けたり、
  • 直接Eメールやテキストを送る、
  • また通話を始める事もできる便利な関数です。

 

これで業務アプリの業務フローとしてスムーズに
外部の人と連絡が取れる様にできるのです。

 

例えば僕が前に作った棚卸アプリでは、
それで棚卸業務をしながら発注の準備ができて、
そのままアプリからEメールやテキストで
発注ができる仕組みを作りました。
それをLaunch関数でやったのです。

 

今日はそれらの使い方をご紹介し、
その後にご質問の場所ボタンの作り方をお見せします。

 

Launch関数での端末内の各機能の起動の仕方

 

Launch関数でWebページやGoogleでの検索結果ページの出し方

 

PowerAppsの開発画面で、
ボタンを一つ追加してLaunch関数を使います。
次の数式の様に飛びたいウェブページのURLを
ダブルコーテーションで挟むだけです。

「OnSelect」属性 =
Launch(“econoshift.com”)    [引数1
つ]

 

このURLは僕のウェブサイトのURLですが、
Altキーを押しながらクリックすると、
ブラウザーの新しいタブが開いてそのページが開きます。

 

例えば、業務アプリである段階で
指定のキーワードでグーグル検索をしたいとします。
そのキーワードの前に「google.com/search?q=」を入れると、
グーグル内でそのキーワードでの検索結果を表示します。

「OnSelect」属性 =
Launch(“google.com/search?q=econoshift.com”)   [引数1
つ]

 

昔在庫管理アプリを作った時に商品のバーコードをスキャンして、
その番号でグーグル検索をしてその商品の情報を表示する仕組みを
このLaunch関数で作った事があります。

 

Launch関数でアプリからメールを送信する方法

 

次にLaunch関数でアプリからメールを送る機能を作りましょう。
次の画面で簡単なメール機能を作っておきました。

 

メールを送る簡易アプリ

各テキスト入力に送信先のメルアド、件名、本文を入れると、
送信ボタンが押せる状態になり、それを押すと、
お使いのメーラーが開きその内容が書き込まれているので
直ぐにメールを送信する事ができます。

 

その時のLaunch関数の書き方はこれです。

「OnSelect」属性 =
Launch(“mailto:” & TextInput1.Text,”subject”,TextInput2.Text,”body”,TextInput3.Text)

 

これは各テキスト入力コントロールを参照していますが、
引数の構造はこうなります。

「OnSelect」属性 =
Launch(“mailto:” & メルアド,”subject”, 件名, “body”, メール本文)
[引数5つ]

 

ちなみにこの「送信」ボタンは
テキスト入力が一つでも入力されていないと
ボタンが押せない状態にして
誤送信の防止をしています。

 

それをするのに「DisplayMode」属性に次の数式を入れています。

「DisplayMode」属性 =
If(!IsBlank(TextInput1) && !IsBlank(TextInput2) && !IsBlank(TextInput3),DisplayMode.Edit,Disabled)

 

要は全てのテキスト入力が入力されたら、
Editに、つまり、クリック可能にし、
そうでなければ、Disabled、
つまり使用不可状態になるのです。

 

これを色んな所で使うとアプリの誤操作防止になり、
集めたデータの精度が上がります。

 

Launch関数でアプリから直接電話を掛ける方法

 

次にアプリから直接通話をする機能を見ていきましょう。
これは例えばアプリに顧客リストや業者リストを載せて、
そこから直接電話を掛ける事ができます。

 

ギャラリーコントロールで簡単に業者リストを作りました。

 

ギャラリーで作った簡易業者リスト

 

ギャラリー内の内部ラベルを選んだ状態で、
メニューバーの「挿入」、「アイコン」から、
何でもいいからアイコンを一つ追加します。

 

右のプロパティ内の「アイコン」で、「電話」で検索します。

 

最近はアイコンの数が増え、この方法だと
最初のリストに載っていないアイコンも見つかります。

 

そのアイコンの「OnSelect」属性にLaunch関数で
「“tel://”」を入れてギャラリー内の
各アイテムの電話番号でつなげています。
これは一つの文字列になるようにして下さい。

「OnSelect」属性 =
Launch(“tel://” & 電話番号) [引数1つ]

 

PCには電話を掛ける機能がありませんので、
スマホでその動きを見てみましょう。
このアイコンをタップすると、
その選択した業者に直接アプリから電話を掛けられます。

 

Launch関数でアプリから直接テキストメッセージの送り方

 

同じ様にテキストメッセージも送る事ができます。
この「メッセージ」アイコンを使いましょう。

 

PowerApps アイコンを検索して変更する2

その「OnSelect」属性にLaunch関数で
「“SMS:”」に続けて相手の携帯番号が来るようにするのです。
これも一つの文字列になるようにします。

「OnSelect」属性 =
Launch(“SMS:” & 携帯番号) [引数1つ]

 

スマホで動きを見ると、
メッセージアイコンをタップすると
その端末の既定のテキストアプリが開き、
メッセージを書いて送れます。

 

アプリ内で作成したメッセージを
自動で入力してくれれば便利ですね。

 

例えばテキスト入力コントロールを追加して、
そこで入力した内容をテキストで送るようにできます。
しかし、その場合ユーザーの端末が
アイフォンかアンドロイドかによって書式が違ってきます。

アイフォン本文付き:
Launch(“SMS:” & 携帯番号 & “&body=” & テキスト本文) [引数1つ]
アンドロイド本文付き:
Launch(“SMS:” & 携帯番号, “body”, テキスト本文) [引数3つ]

 

アイフォンの書式はこの様に引数は一つだけですが、
アンドロイドだと引数は三つになります。

 

今の所、簡単に自動で端末の種類を検出できないので、
ユーザーの端末の種類が混在している場合は
実務でこの機能を使うのは難しいかもしれません。
ユーザーが皆同じ種類の端末でしたらぜひ使ってみて下さい。

 

アプリでユーザーの位置情報の取得の仕方

 

以上がLaunch関数の基本的な使い方でした。

 

それでは今日の動画リクエストの
「場所」ボタンの作りを見てみましょう。

 

これが勤怠管理アプリ上で、
仕事の初めに「出勤」ボタンをタップすると、
確認画面が出て「確認」ボタンをタップしたら、
その時の時間がクラウドのSharePointリストに保存されます。

 

そのボタンの「OnSelect」属性内のPatch関数で行います。
その部分の数式がこれです。

「OnSelect」属性 = 
Patch(
.    Tbl_Labor_Records,
.    {ID: Blank()},
.    {
.        Date: Today(),
.        Employee: ユーザー,
.        Start_Time: 打刻時間,
.        Start_GPS_Ido: Location.Latitude,
.        Start_GPS_Keido: Location.Longitude,
.    }
),

 

Patch関数で今日の日付やユーザー名、出勤時間と同時に
「Location.Latitude」と
「Location.Longitude」が保存されています。
Latitudeは英語の「緯度」でLongitudeは「経度」です。

 

この式でスマホのGPS機能から、
ユーザーの居場所の地球上の緯度と経度を
取得できるのです。

 

そしてこの式でそのデータをSharePointリストの
「Start_GPS_Ido」と「Start_GPS_Keido」
と言う列に保存します。

 

スマホでこのアプリを立ち上げた時に

「このアプリは端末の位置情報に
アクセスしようとしています。許可しますか?」

みたいなメッセージが出ます。その時は許可して下さい。
でなければ緯度と経度の情報は
空欄としてクラウド保存されます。

 

しかし、後で許可に変更する事もできます。
念のためにそれをご紹介すると、
iPhoneでの例で、英語版ですが、

  1. 「ホーム」画面から「設定」、
  2. スワイプダウンして、「Power Apps」から、
  3. 英語版では「Location」、
    日本語版ですとたぶん「位置情報」です。
    ここからアプリが位置情報を使える状態にして下さい。

 

Launch関数でグーグルマップ上に位置情報の位置を表示する方法

 

これにより各出退勤のボタンが押される度に
緯度と経度のデータがクラウド保存され、
その履歴が下の出退勤記録表に出てきます。

 

勤怠管理アプリ 出退勤記録表

 

各記録に「場所」ボタンがあります。
その「OnSelect」属性を見ると、
Launch関数の書式でグーグルマップを開き、
指定の緯度と経度の場所を表示できるのです。

「OnSelect」属性 = 
Launch(“https://www.google.com/maps/place/” & ThisItem.Start_GPS_Ido & “,” & ThisItem.Start_GPS_Keido)

 

分かり易く構造を書くとこうです。

「OnSelect」属性 = 
Launch(“https://www.google.com/maps/place/” & 緯度の数値 & “,” & 経度の数値) [引数1つ]

 

実際にクリックしてみます。

 

勤怠管理アプリの場所ボタンの結果

これは東京タワーの緯度と経度を入れておいたんですが、
こんな機能を簡単に実装できてしまうなんてすごいですよね。

 

皆さんだったらこのLaunch関数の機能をどの様に使いますか?
これらの機能をアプリに取り入れると
今までになかった業務改善ができると思います。

 

今回また、勤怠管理アプリをお見せしましたが、
このアプリの作成を題材にした
Udemyオンラインコースの中級編を今制作中です。
コース内で実際にこのアプリを作成して
アプリ作成の沢山のコツを体得できるのです。

 

それと同じUdemyのオンラインコースの初級編も
大変ご好評を頂いています。
概要欄にリンクを張っていますのでご覧になってみて下さい。

⇒「マイクロソフトPowerApps【コントロールと関数 完全ガイド】初級編」

 

「こちらの記事も読まれてます

 

Comments