Power Apps 中的主机对象

适用于: 画布应用 模型驱动应用

Power Apps 中的主机对象提供有关运行应用的当前主机的信息。

说明

主机对象提供有关运行应用程序的主机设备、操作系统和播放器的信息。 Host 类似于 App 对象 ,每个应用程序都可以访问此信息。

主机的最佳用途之一是调试无法在特定设备或特定浏览器上正常运行的应用程序。 使用此对象的文本属性在带有文本标签控件的应用程序用户界面中显示信息,或将信息记录到数据库表或 Application Insights

使用主机为特定设备或浏览器定制应用程序是很有诱惑力的。 这是很危险的,因为 Power Apps 被设计为在各种硬件和软件平台上运行,而您的主机逻辑可能无法考虑所有这些,并且它们会随着时间的推移而变化。 更好的方法是使用更抽象的信息,而不是绑定到特定的硬件和软件。 例如,使用屏幕控件的 Size 属性来定制屏幕,以便在较小的设备(如电话)上运行时显示较少的信息或重新组织信息。

要访问 Power Apps Studio 中的主机对象,请展开树视图窗格顶部的应用程序对象,然后选择主机。 在此示例中,主机对象并不具有接受公式的任何属性。

“树视图”窗格中的主机对象。

备注

主机对象当前仅在自定义页面和画布应用中可用。

BrowserUserAgent 属性

文本属性 BrowserUserAgent 包含完整的用户代理字符串,浏览器在运行应用程序时使用该字符串来标识自己。

例如,浏览器用户代理字符串可能是:

  • Mozilla/5.0(Windows NT 10.0;Win64;x64)
  • AppleWebKit/537.36(KHTML,如 Gecko)
  • Chrome/109.0.0.0 Safari/537.36 Edg/109.0.1518.78

备注

如果您在本机应用中运行 Power Apps,或使用 Power Apps 中的整合功能,则应用通过浏览器控件来呈现,该控件提供用户代理字符串。

OSType 属性

OSType 属性提供运行应用的操作系统的名称。 OSType 由浏览器发送到 Power Apps 的用户代理字符串来确定。 下面是 OSType 的常见值的示例:

价值
窗户
Mac OS
iOS
Android
Linux
...

备注

不要使用 OSType 根据报告的操作系统来更改应用程序的体验或功能。

OSType 文本可用于任意公式,例如在标签的文本属性中显示该文本:

Label1.Text: "You're running " & Host.OSType

SessionID 属性

SessionID 属性返回标识当前会话的 GUID。 向管理员报告问题时,请包括此信息。

备注

在 Power BI 中的 Power Apps 等嵌入式方案中,SessionID 属性返回基础 Power Apps 会话 ID,而不是 Power BI 会话 ID。

Label1.Text: $"Provide session ID { Host.SessionID } to your administrator."

TenantID 属性

TenantID 属性提供全局唯一标识符 (GUID),此标识符指定与当前经过身份验证的用户关联的 Microsoft Entra 租户。

备注

SessionID 类似,在 Power BI 中的 Power Apps 等嵌入式场景中,租户 ID 为用于 Power Apps 会话身份验证的租户。

Label1.Text: Host.TenantID

版本属性

Version属性提供 Power Apps 播放器的标识和版本号。 与 BrowserUserAgent 类似,可能会返回多个版本号,用空格分隔。

备注

在 Power Apps Studio 中工作时,Version 属性始终为空字符串。

Label1.Text: Host.Version

OfflineEnabled 属性

OfflineEnabled 属性在 Power Apps 播放器中提供应用程序的运行时模式。 对于未启用脱机功能的应用程序,该属性始终为 false。 对于支持脱机使用的应用程序,该属性在 web 上为 false,但在 iOS、Android 和 Windows 上为 true。

备注

即使画布应用程序在没有网络连接的情况下无法运行,对于已启用脱机使用的画布应用程序,OfflineEnabled 属性在 Power Apps Studio 中仍然为真。

Label1.Text: Host.OfflineEnabled

示例

  1. 创建一个新的画布应用程序。
  2. 添加一个文本标签控件,并将 Text 属性设置为 "Host.BrowserUserAgent: " & Host.BrowserUserAgent
  3. 添加一个文本标签控件,并将 Text 属性设置为 "Host.OSType: " & Host.OSType
  4. 添加一个文本标签控件,并将 Text 属性设置为 "Host.SessionID: " & Host.SessionID
  5. 添加一个文本标签控件,并将 Text 属性设置为 "Host.TenantID: " & Host.TenantID
  6. 添加一个文本标签控件,并将 Text 属性设置为 "Host.Version: " & Host.Version
  7. 添加一个文本标签控件,并将 Text 属性设置为 "Host.OfflineEnabled: " & Host.OfflineEnabled

在不同的设备和不同的浏览器上运行您的应用程序,您会看到类似下面的结果。

Power Apps Studio 位于搭载 Edge 浏览器的 Windows 上

中工作时,Host.Version Power Apps Studio始终为空。

Host.BrowserUserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36 Edg/116.0.1938.76
Host.OSType: Windows
Host.SessionID: ee2eed1a-8455-4e68-a433-a709302d0c71
Host.TenantID: aaaabbbb-0000-cccc-1111-dddd2222eeee
Host.Version: 

iOS 上的 Power Apps 本机移动播放器

Host.BrowserUserAgent: Mozilla/5.0 (iPhone; CPU iPhone OS 16_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 PowerApps/e1c23ff9-4822-4e75-a003-01c91407a4d2
Host.OSType: Windows
Host.SessionID: 3ebec22f-ee2e-412a-b3eb-45d97db34863
Host.TenantID: aaaabbbb-0000-cccc-1111-dddd2222eeee
Host.Version: PowerApps-Native/3.23084.8(iOS)

搭载 Firefox 浏览器的 Windows 上的 Power Apps web 播放器

Host.BrowserUserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/117.0
Host.OSType: Windows
Host.SessionID: 283309a4-d88b-4b2a-88de-73b47d1b62d0
Host.TenantID: aaaabbbb-0000-cccc-1111-dddd2222eeee
Host.Version: PowerApps-Web/3.23084.6(Windows)

搭载 Safari 浏览器的iOS 上的 Power Apps web 播放器

Host.BrowserUserAgent: Mozilla/5.0 (iPhone; CPU iPhone OS 16_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1
Host.OSType: iOS
Host.SessionID: a09a946d-ce71-4c1f-bd35-519c79849c8d
Host.TenantID: aaaabbbb-0000-cccc-1111-dddd2222eeee
Host.Version: PowerApps-Web/3.23084.6(iOS)