gyroscope.md 3.2 KB
Newer Older
Q
qiang 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
### uni.onGyroscopeChange(CALLBACK)

监听陀螺仪数据变化事件。

支付宝小程序频率为 500ms/次,微信小程序频率根据 [uni.startGyroscope](/api/system/gyroscope?id=startgyroscope) 的 interval 参数设置。事件只有在调用 [uni.startGyroscope](/api/system/gyroscope?id=startgyroscope) 后才会开始监听,使用 [uni.stopGyroscope](/api/system/gyroscope?id=stopgyroscope) 可以停止监听。

**平台差异说明**

|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|
|x|x|√|√|x|x|

**CALLBACK 参数说明**

|属性|类型|说明
|--|--|--|
|res|Object|res = {x,y,x}|

**res 的结构**

|名称|类型|描述|
|---|---|---|
|x|number|x轴方向角速度|
|y|number|y轴方向角速度|
|z|number|z轴方向角速度|

### uni.startGyroscope(OBJECT)

开始监听陀螺仪数据。

**平台差异说明**

|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|
|x|x|√|√|x|x|

|属性|类型|默认值|必填|说明|平台说明|
|---|---|---|---|---|
|interval|string|normal|否|监听陀螺仪数据回调函数的执行频率:game(20ms/次)、ui(60ms/次)、normal(200ms/次)|微信小程序|
|success|function||否|接口调用成功的回调函数||
|fail|function||否|接口调用失败的回调函数||
|complete|function||否|接口调用结束的回调函数(调用成功、失败都会执行)| |

### uni.stopGyroscope(OBJECT)

停止监听陀螺仪数据。

**平台差异说明**

|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|
|x|x|√|√|x|x|

|属性|类型|必填|说明|
|---|---|---|---|
|success|function|否|接口调用成功的回调函数|
|fail|function|否|接口调用失败的回调函数|
|complete|function|否|接口调用结束的回调函数(调用成功、失败都会执行)|

**代码示例**

```html
<template>
    <view>
        <button @click="start">开始监听陀螺仪变化</button>
        <button @click="stop">停止监听陀螺仪变化</button>
    </view>
</template>
```

```javascript
export default {
    methods: {
        start() {
            uni.onGyroscopeChange((res) => {
                console.log('gyroData.rotationRate.x = ' + res.x)
                console.log('gyroData.rotationRate.y = ' + res.y)
                console.log('gyroData.rotationRate.z = ' + res.z)
            });
            uni.startGyroscope({
                interval: "normal",
                success() {
                    console.log('success')
                },
                fail() {
                    console.log('fail')
                }
            })
        },
        stop(){
            uni.stopGyroscope({
                success() {
                    console.log('stop success!')
                },
                fail() {
                    console.log('stop fail!')
                }
            })
        }
    }
}
```

**Tips**

* 陀螺仪 相关 API 在小程序开发工具中调用可能报错,请在真机中测试