Power Apps 中的 Acceleration、App、Compass、Connection 和 Location 信号

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

返回关于应用环境的信息,例如用户的全球所在位置,以及所显示的是哪个屏幕。

说明和语法

信号是可以随时更改的值,与用户可能以何种方式与应用交互无关。 当这些值更改时,基于信号的公式会自动重新计算。

信号通常返回信息的记录。 可以使用此信息并将其存储为记录,也可提取单个属性,其方式是使用 .运算符

备注

AccelerationCompass 函数会在本机播放器(如 iOS 或 Android 上)中返回准确的值,但如果在浏览器中创建或修改应用,这些函数则返回零值。

加速

Acceleration 信号以相对于设备屏幕的三维方式返回设备的加速度。 Acceleration 的测量单位为 g(9.81 m/s2 或 32.2 ft/s2)(地球由于重力而在其表面对物体产生的加速度)。

属性 描述
Acceleration.X 右侧和左侧。 右侧为正数。
Acceleration.Y 前方和后方。 前方为正数。
Acceleration.Z 上方和下方。 上方为正数。

应用

在其他属性中,App 对象包含指示所显示屏幕的信号。

属性 描述
App.ActiveScreen 所显示的屏幕。 返回一个屏幕对象,可用于引用屏幕属性,或与其他屏幕进行比较,以判断显示的是哪个屏幕。 您可以使用 BackNavigate 函数可以更改显示的屏幕。

详细信息:App 对象文档。

Compass

Compass 信号返回屏幕顶部的指南针标题。 该标题以磁北方为基础。

属性 描述
Compass.Heading 标题以度为单位。 返回一个介于 0 到 360 之间的数值,0 表示北方。

连接

Connection 信号返回网络连接的相关信息。 如果连接按流量计费,建议限制通过网络发送或接受数据的量。 或者,如果您的应用启用了脱机功能,您可能希望根据当前同步状态显示不同的信息。

属性 说明
Connection.Connected 返回一个布尔值 truefalse,指示设备是否已连接到网络。
Connection.Metered 返回一个布尔值 truefalse,指示连接是否按流量计费。
Connection.Sync 返回名为 ConnectionSync 的枚举,该枚举保存允许脱机使用的应用的当前同步状态。

以下是可用于 Connection.Sync 的枚举值。

枚举值 说明
Connected 您的设备已连接到网络,并且您的应用已做好脱机工作的准备
ConnectedWithWarning 您的设备已连接,但出现警告。
ConnectedPendingUpsync 您的设备上的某些数据必须与服务同步。
ConnectedError 上次同步尝试时出错。
ConnectedRefresh 您的应用当前正在与服务同步数据。
NotConnected 您的设备未连接到该服务。
NotConnectedWithWarning 上次同步警告。
NotConnectedPendingUpsync 您的设备上有更新等待同步。
NotConnectedSyncError 上一个同步错误。

地点

Location 信号基于全球定位系统 (GPS) 和其他设备信息(如手机基站通信和 IP 地址)返回设备的位置。

用户首次访问位置信息时,设备可能会提示该用户,以允许访问此信息。

随着位置在不断改变,位置上的依赖项将不断被重新计算,这将消耗设备电池的电量。 要维护电池寿命,可使用 EnableDisable 函数打开或关闭位置更新。 如果显示的屏幕不依赖于位置信息,位置将自动关闭。

属性 描述
Location.Altitude 返回一个指示海拔高度的数值(用米表示)。
Location.Latitude 返回一个介于 –90 至 90 之间的数值,该值指示从赤道起以度数表示的纬度。 正数表示赤道以北的位置。
Location.Longitude 返回一个介于 –180 至 180 之间的数值,该值指示从英国格林威治起用度数表示的经度。 正数表示格林威治以东的位置。

示例

在棒球场中,一位棒球投手将手机从投球区投掷给本垒的捕手。 该手机相对于地面是平行移动的,手机的屏幕顶端指向捕手,且投手在投掷过程中未使手机发生旋转。 在该位置,这部手机连接的是按流量计费的移动网络服务,没有 WiFi。 将显示 PlayBall 屏幕。 该应用已启用脱机功能并已连接到该服务。

公式 说明 结果
Location.Latitude 返回当前位置的纬度。 球场在地图上的坐标定位是 47.591 N,122.333 W。 47.591

纬度将随球在投手和捕手之间的移动而不断更改。
Location.Longitude 返回当前位置的经度。 122.333

经度将随球在投手和捕手之间的移动而不断更改。
Location 返回当前位置的经度和纬度作为记录。 { Latitude: 47.591, Longitude: 122.333 }
Compass.Heading 返回屏幕顶部的指南针标题。 在此球场,本垒大致位于投手区的西南侧。 230.25
Acceleration.X 返回并排设备的加速度。 由于投手直接向前相对屏幕的顶端投掷手机,因此设备不会并排加速。 0
Acceleration.Y 返回设备从前到后的加速度。 在投掷设备之初,投手为设备提供了一个较大的加速度,在半秒中内达到从 0 增至 90 英里/小时(132 英尺/秒)。 设备在空中运动时,忽略空气阻力,设备不会进一步加速。 捕手接住设备时,设备将减速至停止。 8.2,投手投掷设备时。

0,设备在空中时。

-8.2,捕手接住设备时。
Acceleration.Z 返回设备从上到下的加速度。 设备在空中运动时会受重力影响。 0,投手投掷设备前。

1,设备在空中时。

0,捕手接住设备后。
加速 将加速度作为记录返回。 { X: 0, Y: 264, Z: 0 },投手投掷设备时。
Connection.Connected 返回一个布尔值,它指示设备是否已连接到网络 true
Connection.Metered 返回一个布尔值,它指示连接是否按流量计费 true
Connection.Sync 返回一个指示当前同步状态的枚举值。 ConnectionSync.Connected
App.ActiveScreen = PlayBall 返回一个布尔值,它指示是否显示了 PlayBall true
App.ActiveScreen.Fill 返回所显示的屏幕的背景色。 Color.Green