《微信小程序开发从入门到实战》学习八十七

发布时间:2024年01月19日

6.15 设备API

6.15.7?加速计API

对手机加速度的监听默认是关闭的。需要监听时调用wx.startAccelerometer接口开启监听。使用wx.onAccelerometerChange获取监听到的加速度数据。不需要监听加速度数据时可使用wx.stopAccelerometer关闭监听。示例代码如下:

????//?开始监听

????wx.startAccelerometer({

??????interval:?'game',?//?监听加速度数据回调函数的执行的周期

??????success()?{

????????//?设置回调函数接收加速度数据

????????wx.onAccelerometerChange(res?=>?{

??????????console.log(res.x)?//?x轴方向上的加速度

??????????console.log(res.y)?//?y轴方向上的加速度

??????????console.log(res.z)?//?z轴方向上的加速度

????????})

????????//?5秒后关闭监听

????????setTimeout(()?=>?{

??????????wx.stopAccelerometer()

????????},?5000)

??????}

????})

调用wx.startAccelerometer可传入interval属性,设置监听回调函数的执行周期。interval的默认设置为normal,即普通的回调周期,在200毫秒/次左右。

从基础库2.1.0版本开始,interval支持传入game和ui两值。

game表示用于更新游戏的回调周期,在20毫秒/次左右。

ui表示用于适用于UI回调周期,在60毫秒/次左右。

根据机型性能、当前CPU与内存的占用情况,interval的设置与实际wx.onAccelerometerChange()回调函数的执行周期会有一些出入。

6.15.8?罗盘API

智能手机一般都内置了罗盘,可检测到手机面对的方向对数

对手机方向的监听默认是关闭的。需要监听时调用wx.startCompass接口开启监听。使用wx.onCompassChange获取监听到的方向数据以及数据精度。不需要监听时可使用wx.stopCompass关闭监听。与加速计API使用方式相似。示例代码如下:

????//?开始监听

????wx.startCompass({

??????success()?{

????????//?设置回调函数接收罗盘数据

????????wx.onCompassChange(res?=>?{

??????????console.log(res.direction)?//?面对的方向度数,number类型

??????????console.log(res.accurancy)?//?精度,基础库2.4.0版本开始支持

????????})

????????//?5秒后关闭监听

????????setTimeout(()?=>?{

??????????wx.stopCompass()

????????},?5000)

??????}

????})

表示方向的direction为number类型。0表示正北,当手机顺时针旋转时该值开始逐渐增大,至360时刚好旋转一周,并重新变为0。

表示精度的accuracy从基础库2.4.0版本开始支持。平台差异,accuracy在iOS和Android系统的值不同。

accuracy在iOS是number类型的值。表示相对于磁北极的偏差。0表示设备指向磁北,90表示指向东,180表示指向南,以此类推。

accuracy在Android系统是一个string类型的值。有效值如下:

high:高精度

medium:中等精度

low:低精度

no-contact:不可信,传感器失去连接

unreliable:不可信,原因未知

unknown:未知的精度枚举值,即该Android系统此时返回的表示精度的值不是一个标准的精度枚举值

文章来源:https://blog.csdn.net/xy2937131682/article/details/135693469
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。