Power Apps 中的 Acceleration、App、Compass、Connection 和 Location 信号
适用于: 画布应用 模型驱动应用
返回关于应用环境的信息,例如用户的全球所在位置,以及所显示的是哪个屏幕。
说明和语法
信号是可以随时更改的值,与用户可能以何种方式与应用交互无关。 当这些值更改时,基于信号的公式会自动重新计算。
信号通常返回信息的记录。 可以使用此信息并将其存储为记录,也可提取单个属性,其方式是使用 . 运算符。
备注
Acceleration 和 Compass 函数会在本机播放器(如 iOS 或 Android 上)中返回准确的值,但如果在浏览器中创建或修改应用,这些函数则返回零值。
加速
Acceleration 信号以相对于设备屏幕的三维方式返回设备的加速度。 Acceleration 的测量单位为 g(9.81 m/s2 或 32.2 ft/s2)(地球由于重力而在其表面对物体产生的加速度)。
属性 | 描述 |
---|---|
加速度.X | 右侧和左侧。 右侧为正数。 |
加速度.Y | 前方和后方。 前方为正数。 |
加速度.Z | 上方和下方。 上方为正数。 |
应用
在其他属性中,App 对象包含指示所显示屏幕的信号。
属性 | 描述 |
---|---|
App.ActiveScreen | 所显示的屏幕。 返回一个屏幕对象,可用于引用屏幕属性,或与其他屏幕进行比较,以判断显示的是哪个屏幕。 您可以使用 Back 或 Navigate 函数可以更改显示的屏幕。 |
详细信息:App 对象文档。
Compass
Compass 信号返回屏幕顶部的指南针标题。 该标题以磁北方为基础。
属性 | 描述 |
---|---|
指南针航向 | 标题以度为单位。 返回一个介于 0 到 360 之间的数值,0 表示北方。 |
连接
Connection 信号返回网络连接的相关信息。 如果连接按流量计费,建议限制通过网络发送或接受数据的量。 或者,如果您的应用启用了脱机功能,您可能希望根据当前同步状态显示不同的信息。
属性 | 说明 |
---|---|
连接.已连接 | 返回一个布尔值 true 或 false,指示设备是否已连接到网络。 |
连接.计量 | 返回一个布尔值 true 或 false,指示连接是否按流量计费。 |
连接.同步 | 返回名为 ConnectionSync 的枚举,该枚举保存允许脱机使用的应用的当前同步状态。 |
以下是可用于 Connection.Sync 的枚举值。
枚举值 | 说明 |
---|---|
连接 | 您的设备已连接到网络,并且您的应用已做好脱机工作的准备 |
ConnectedWithWarning(已连接警告) | 您的设备已连接,但出现警告。 |
已连接挂起同步 | 您的设备上的某些数据必须与服务同步。 |
连接错误 | 上次同步尝试时出错。 |
ConnectedRefresh 刷新 | 您的应用当前正在与服务同步数据。 |
未连接 | 您的设备未连接到该服务。 |
NotConnectedWithWarning(不连接警告) | 上次同步警告。 |
NotConnectedPendingUpsync | 您的设备上有更新等待同步。 |
NotConnectedSyncError 错误 | 上一个同步错误。 |
地点
Location 信号基于全球定位系统 (GPS) 和其他设备信息(如手机基站通信和 IP 地址)返回设备的位置。
用户首次访问位置信息时,设备可能会提示该用户,以允许访问此信息。
随着位置在不断改变,位置上的依赖项将不断被重新计算,这将消耗设备电池的电量。 要维护电池寿命,可使用 Enable 和 Disable 函数打开或关闭位置更新。 如果显示的屏幕不依赖于位置信息,位置将自动关闭。
属性 | 描述 |
---|---|
位置.Altitude | 返回一个指示海拔高度的数值(用米表示)。 |
位置.纬度 | 返回一个介于 –90 至 90 之间的数值,该值指示从赤道起以度数表示的纬度。 正数表示赤道以北的位置。 |
位置.经度 | 返回一个介于 –180 至 180 之间的数值,该值指示从英国格林威治起用度数表示的经度。 正数表示格林威治以东的位置。 |
示例
在棒球场中,一位棒球投手将手机从投球区投掷给本垒的捕手。 该手机相对于地面是平行移动的,手机的屏幕顶端指向捕手,且投手在投掷过程中未使手机发生旋转。 在该位置,这部手机连接的是按流量计费的移动网络服务,没有 WiFi。 将显示 PlayBall 屏幕。 该应用已启用脱机功能并已连接到该服务。
公式 | 说明 | 结果 |
---|---|---|
位置.纬度 | 返回当前位置的纬度。 球场在地图上的坐标定位是 47.591 N,122.333 W。 | 47.591 纬度将随球在投手和捕手之间的移动而不断更改。 |
位置.经度 | 返回当前位置的经度。 | 122.333 经度将随球在投手和捕手之间的移动而不断更改。 |
位置 | 返回当前位置的经度和纬度作为记录。 | { Latitude: 47.591, Longitude: 122.333 } |
指南针航向 | 返回屏幕顶部的指南针标题。 在此球场,本垒大致位于投手区的西南侧。 | 230.25 |
加速度.X | 返回并排设备的加速度。 由于投手直接向前相对屏幕的顶端投掷手机,因此设备不会并排加速。 | 0 |
加速度.Y | 返回设备从前到后的加速度。 在投掷设备之初,投手为设备提供了一个较大的加速度,在半秒中内达到从 0 增至 90 英里/小时(132 英尺/秒)。 设备在空中运动时,忽略空气阻力,设备不会进一步加速。 捕手接住设备时,设备将减速至停止。 | 8.2,投手投掷设备时。 0,设备在空中时。 -8.2,捕手接住设备时。 |
加速度.Z | 返回设备从上到下的加速度。 设备在空中运动时会受重力影响。 | 0,投手投掷设备前。 1,设备在空中时。 0,捕手接住设备后。 |
加速度 | 将加速度作为记录返回。 | { X: 0, Y: 264, Z: 0 },投手投掷设备时。 |
连接.已连接 | 返回一个布尔值,它指示设备是否已连接到网络 | 真 |
连接.计量 | 返回一个布尔值,它指示连接是否按流量计费 | 真 |
连接.同步 | 返回一个指示当前同步状态的枚举值。 | 连接同步.已连接 |
App.ActiveScreen = PlayBall | 返回一个布尔值,它指示是否显示了 PlayBall。 | 真 |
App.ActiveScreen.Fill | 返回所显示的屏幕的背景色。 | 颜色.绿色 |