特定の画面へのディープ リンクを含むキャンバス アプリを作成する

アプリを構築する際の一般的なシナリオは、特定の画面への "ディープ リンク" を共有する必要があることです。 ディープ リンクは、アプリの "ホーム" 画面からナビゲートするようにユーザーに求めるのではなく、ユーザーを特定の画面とデータに直接誘導する場合に役立ちます。

Power Apps アプリにディープ リンクするには、URL 構文: https://apps.powerapps.com/play/{App ID}?{Query} を使用します。

この構文では:

  • App ID—アプリの ID。 Power Apps > アプリ > アプリを選択 > 詳細 に移動します。
  • クエリ—クエリ テキストを使用すると、ディープ リンク先のデータを提供できます。 提供されたパラメーターを使用してクエリ URL を使用してアプリを開くには、キャンバス アプリにコードを変更する必要があります。

この記事では、次の方法について説明します。

  • クエリ パラメータを処理するようにキャンバス アプリを設定します。
  • アプリの画面から直接ディープ リンクをメールで送信するための UI を作成します。
  • アプリを使用して特定のアカウントを参照し、ディープ リンクを含むメールを送信し、受信したメールからのリンクを使用して、そのアカウントに直接アプリを開きます。

前提条件

アプリの作成

Microsoft Dataverse の アカウント テーブルを使用して アプリを作成します

アプリが BrowseScreen に開き、ギャラリー内のアカウントのリストを表示します。 既定で、このギャラリーにはメール アドレス、市区町村、アカウント名が表示されます。 アプリには、DetailScreenEditScreen も含まれます。

ナビゲーションの更新

次に、ユーザーを別の画面に移動するために使用するコンテキストを使用するようにナビゲーションを設定します。

  1. BrowseScreen 画面で、ギャラリーのプロパティの下で レイアウト を選択し、タイトル、サブタイトル、本文 を選択します。

    取引先企業一覧ビュー

  2. BrowseGallery ギャラリーの最初のレコードを選択します。 その後、OnSelect で、次を選択します。

    Navigate(DetailScreen1, Fade, {accountVal:ThisItem})
    

    アカウントを設定します。

    Navigate() 関数は、accountVal と呼ばれるコンテキスト変数を作成します。 この変数は、ギャラリーからレコードを選択するたびに入力されます。 レコードを選択すると、accountVal で、選択した値 (この例ではアカウント) とともに DetailScreen に移動します。

  3. 画面の左側で ツリー表示 から、DetailScreen1 を展開して、DetailForm1 を選択します。

    ツリービューから DetailForm1 を選択します。

  4. 画面右側のプロパティ ペインから、フィールドを編集 を選択して、アカウント取引先責任者Eメール のフィールドを追加します。

    アカウントの詳細ビュー

  5. DetailForm を選択して、アイテムaccountVal に設定します。

    AccountVal.

  6. "アカウントのディープ リンク" という名前で 保存します

アプリ ID を取得する

アプリ ID は、特定のアプリを表す一意の GUID であり、アプリをクラウドに保存するときに生成されます。

アプリ ID を取得するには、新しいタブを開いて、Power Apps > アプリ > アプリを選択 > 詳細 に移動します。 詳細: アプリ ID を取得する

アプリの詳細

この例の目標は、アプリがアプリの URL の一部としての accountId クエリ パラメータで起動されたとき、ユーザーを DetailsScreen1 へと移動させることです。 この目的のために、アプリの起動中に提供されたクエリ文字列パラメーターを取得する関数 Param () を使用します。

  1. 画面左側のツールベルトから、テンプレート ビュー から アプリ を選択します。

    ヒント

    Power Apps Studio 閉じた場合、アプリを 編集 することで、保存した "アカウント ディープ リンク" アプリを再度開きます。

  2. プロパティのリストから、OnStart プロパティを選択します。

  3. アプリ ID の値を保存するには、以下のプロパティ式から OnStart 指揮を更新します。

    Set(AppID, "GUID");
    If(Not(IsBlank(Param("accountId"))),Set(accountId,Param("accountId")));
    

    この式では、関数 Set()アプリ ID をアプリの GUID に設定します。 そして機能 Param() は空白でない場合は、accountId 変数に値を格納します。

    注意

    上記の式の "GUID" を、必要に応じて自分のアプリ ID に置き換えてください。

    Set 関数と Param 関数を使用した App OnStart 式。

  4. アプリの StartScreen プロパティを選択し、次を追加します。

    If(Not(IsBlank(Param("accountId"))),DetailScreen1,BrowseScreen1)
    

    この関数は、パラメータが空白であるかどうかをチェックしてから、BrowseScreen1 に留まります。 それ以外の場合は、DetailScreen1 に移動します。

    変数値に基づいてリダイレクトまたは滞在するための Param 関数を備えたアプリの StartScreen 式。

  5. ツリー ビューBrowseScreen1 ページを選択します。

  6. OnVisible プロパティを選択して、以下を入力します。

    If(Not(IsBlank(accountId)), UpdateContext({accountVal:LookUp(Accounts, Account = GUID(accountId))}))
    

    この関数は以前のステップから保存された accountId を使用して、accountVal 変数を設定します。

    OnVisible プロパティ式を使用した DetailScreen1。

これで、アプリは アカウント テーブルからのアカウントの GUID を含むパラメータとして、accountId を受信するように構成されました。 また、このパラメーターがアプリへのリクエストで提供されると、アプリは詳細画面 (DetailScreen1) を与えられた accountId とともに直接開きます。

パラメータ値を使用してアプリを呼び出すには、次の構文を使用する必要があります。

https://apps.powerapps.com/play/{App ID}?{Query}

上記の構文では、アプリ ID およびその値を持つ accountId 変数を含むクエリを追加する必要があります。

たとえば、サンプル テナントのブラウザに次の URL を入力すると、アプリの アカウントのディープ リンク は、提供された accountId パラメータ値 (この例では、"A。 Datum Corporation (サンプル)" ) を直接開きました: https://apps.powerapps.com/play/061b64cd-e5a0-4a7a-a77f-b6f8586dd6c7?accountId=01e5bf81-7d44-ec11-8c60-002248094566

A. Datum Corporation (サンプル) の詳細とのサンプル リンクが開きます。

また、アプリ内から特定のアカウントのURLを呼び出すときに、上記で説明した絶対リンクを使用する代わりに、変数 accountVal を提供して、アカウントの ID を指定することもできます。

この目的のために、ボタンを作成し、アプリ内からメールを呼び出す機能を追加します。この機能には、アカウントのディープ リンク アプリから選択したアカウントの詳細画面へのディープ リンクが含まれます。

  1. 画面の左側から データ を選択します。

  2. データを追加する > 検索して選択 Office 365 Outlook > 選択 接続 を選択します。

    注意

    このアクションは、Microsoft 365 Outlook 接続を追加し、それにより次の手順を使用して、アカウント情報を共有するためのメールの作成を呼び出すことができます。

  3. ツリー ビューBrowseScreen1 ページを選択します。

  4. 画面の右下にボタンを挿入し、名前を アカウントを共有する に変更します。

  5. ボタンの OnSelect プロパティで次のように変更します。

    Office365Outlook.SendEmailV2("Recipient", "Subject", "Here's the deep link to the selected account - https://apps.powerapps.com/play/{App ID}?accountId=" & accountVal.Account)
    

    この式は、Outlook 用 Microsoft 365 接続を使用して、SendEmailV2 操作を使用してメールを送信します。

    注意

    上記の式で、受信者主題AppID を受信者のメールアドレス、メールの件名、アプリの ID に置き換えます。

    アカウントの共有ボタン

  6. アプリを 保存して公開 します。

アプリをテストする

アプリを実行し、任意のアカウントアカウントの詳細画面に移動します。 次に、ボタン アカウントを共有する を選択します。 OnSelect ボタン式は、件名と本文が以前に構成された受信者へのメールをトリガーします。 設定されたアプリから送信されるメールの例は次のとおりです。

[アカウントの共有] ボタンを使用して送信されたメール。

メールを開き、選択したアカウントを指すディープ リンクをコピーすると、規定の参照画面の代わりに アカウントのディープ リンク アプリのアカウント詳細画面に直接移動します。

メールからのリンクを使用してアプリを開きます。

関連情報