MS PowerApps 深层链接

MS PowerApps Deep Linking

我正在通过调用 URL 调用 ID 将参数传递给 PowerApp,即 https://web.powerapps.com/apps/powerappid?ID=32

当应用程序启动时,我希望它从列出所有业务案例的 BrowseScreen1 跳转并直接转到具有匹配 ID(SharePoint 列表中的字段)的业务案例。

我是 PowerApps 的新手,但很确定我需要做的是深度链接,我找到了这个教程 https://powerapps.microsoft.com/en-us/blog/powerapps-deep-linking/ 并阅读了这篇文章的评论,我试图将它应用到BrowseScreen1 的 OnStart 属性。我真的不明白教程中的导航 link 是如何构造的,所以我确定我使用了错误的导航参数,因为它总是启动列表中的第一条记录,而忽略与 ID 相关的任何内容。我正在使用:

If(Not(IsBlank(Param("ID"))),Navigate(DetailScreen1, None,{ID:LookUp('Full Business Case For Review'.ID, ID = Value(Param("ID")))}))

'Full Business Case For Review' 是 Sharepoint 列表的名称,ID 是分配给每个列表项的唯一字段。

教程没有提到必须在详细信息屏幕上更改任何内容,但我也想知道我是否需要更改当前的项目属性:

BrowseGallery1.Selected

我感到力不从心,非常感谢这方面的帮助!

谢谢,

约翰

是的,您需要在详细信息屏幕中更改项目 属性。这是因为目前无法在 PowerApps 中以编程方式 select 库中的项目。

我通常通过使用全局变量来存储当前项来解决这个问题,因此您可以将 BrowseSreen1.OnStart 设置为此

If(Not(IsBlank(Param("ID"))),
    Set(CurrentItem, LookUp('Full Business Case For Review'.ID, ID = Value(Param("ID"))));
        Navigate(DetailScreen1, None)
    )

这会将 ID 等于您的参数的项目存储为记录类型变量。

您还需要更改 BrowseGallery1 模板的 OnSelect 属性 或用于导航到详细信息屏幕的任何控件。它需要像这样

Set(CurrentItem, ThisItem); Navigate(DetailScreen1, None)

最后把详情界面的项目属性设置成这样

CurrentItem