创建带有指向特定屏幕的深层链接的画布应用

构建应用时的一个常见场景是需要将“深层链接”共享到特定屏幕。 当您希望让用户直接访问特定屏幕和数据而不是让他们从应用的“主”屏幕导航时,深层链接非常有用。

要深度链接到 Power Apps,您需要使用以下 URL 语法:https://apps.powerapps.com/play/{App ID}?{Query}

在此语法中:

  • 应用 ID- 应用程序的 ID。 转到 Power Apps>应用程序> 选择您的应用程序>详细信息
  • 查询 - 查询文本允许您提供要深度链接的数据。 您需要对画布应用进行一些代码更改,以使用提供的参数通过查询 URL 打开应用。

在本文中,您将了解如何:

  • 设置一个画布应用来处理查询参数。
  • 创建一个 UI,用于直接从您的应用屏幕通过电子邮件发送深层链接。
  • 使用应用浏览到特定客户,发送包含深层链接的电子邮件,然后使用收到的电子邮件中的链接直接将应用打开到该客户。

先决条件

创建应用

使用 Microsoft Dataverse 中的客户创建应用

您的应用将打开到 BrowseScreen,其中显示库中的客户列表。 默认情况下,此库显示一个电子邮件地址、一个城市和一个客户名称。 此应用还包含 DetailScreenEditScreen

更新导航

现在,您将设置导航以使用我们要用于将用户带到另一个屏幕的上下文。

  1. BrowseScreen 屏幕上,选择库属性下的布局,然后选择标题、副标题和正文

    客户列表视图。

  2. 选择 BrowseGallery 库的第一个记录。 然后,在 OnSelect 下,输入:

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

    设置 AccountVal。

    Navigate() 函数将创建一个名为 accountVal 的上下文变量。 每当您从库中选择记录时,都会填充此变量。 选择记录后,您将被带到 DetailScreen,其中包含 accountVal 中的选定值(在本例中为“客户”)。

  3. 从屏幕左侧的树视图,展开 DetailScreen1,然后选择 DetailForm1

    从树视图中选择 DetailForm1。

  4. 从屏幕右侧的属性窗格中,选择编辑字段,然后添加客户主要联系人电子邮件字段。

    客户详细信息视图。

  5. 选择 DetailForm,将项目设置为 accountVal

    AccountVal。

  6. 保存,使用名称“客户深层链接”。

获取应用 ID

应用 ID 是代表给定应用的唯一 GUID,在您将应用保存到云时生成。

要获取应用 ID,请打开新标签页并转到 Power Apps>应用程序> 选择您的应用程序>详细信息。 详细信息:获取应用 ID

应用详细信息。

此示例的目标是在应用启动时将用户带到 DetailsScreen1,并将 accountId 查询参数作为应用 URL 的一部分。 为此,我们将使用启动应用时检索提供的查询字符串参数的函数 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 函数的应用 OnStart 公式。

  4. 选择应用的 StartScreen 属性,并添加:

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

    此函数检查 Param 是否为空,然后停留在 BrowseScreen1 上。 或者,转到 DetailScreen1

    包含 Param 函数的应用 StartScreen 公式可根据变量值重定向或停留。

  5. 树视图中选择 DetailScreen1

  6. 选择 OnVisible 属性,输入:

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

    此函数使用上一步中存储的 accountId 来设置 accountVal 变量。

    包含 OnVisible 属性公式的 DetailScreen1。

您的应用现在已配置为作为参数接收 accountId,其包含客户表中客户的 GUID。 当向应用发起的请求中提供此参数时,应用将使用给定的 accountId 直接打开详细信息屏幕 (DetailScreen1)。

要使用参数值调用应用,我们必须使用以下语法:

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(示例)详细信息的示例链接已打开。

我们还可以提供一个变量 accountVal 来指向客户的 ID,而不是使用上面解释的绝对链接,同时从应用内部调用给定客户的 URL。

为此,我们将创建一个按钮,并添加可从客户深层链接应用使用指向所选客户详细信息屏幕的深层链接在应用中调用电子邮件的功能。

  1. 在屏幕左侧选择数据

  2. 选择添加数据>搜索并选择 Office 365 Outlook> 选择连接

    备注

    此操作添加 Microsoft 365 Outlook 连接,以便我们可以使用后续步骤调用撰写电子邮件以共享客户信息。

  3. 树视图中选择 DetailScreen1

  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 操作发送电子邮件。

    备注

    将上述公式中的 RecipientSubjectAppID 替换为收件人的电子邮件地址、电子邮件的主题和应用的 ID。

    共享客户按钮。

  6. 保存并发布应用。

测试应用

运行应用,然后转到任何客户的详细信息屏幕。 然后,选择共享客户按钮。 OnSelect 按钮公式会触发一封电子邮件发送给收件人,使用之前配置的主题和正文。 以下是配置的应用发送的示例电子邮件:

使用共享客户按钮发送的电子邮件。

打开电子邮件,复制指向所选客户的深层链接,您将直接进入客户深层链接应用中的客户详细信息屏幕,而不是默认的浏览屏幕。

使用电子邮件中的链接打开的应用。

另请参见