Skip to content

传感器

Mini App 支持访问设备的加速度计、陀螺仪和方向传感器。所有传感器 API 均需 Bot API 8.0+

Accelerometer

加速度计,用于测量设备在三个轴上的加速度(含重力)。通过 Telegram.WebApp.Accelerometer 访问。

属性

属性类型描述
isStartedBoolean加速度计是否正在采集数据
xFloatX 轴加速度(m/s²)
yFloatY 轴加速度(m/s²)
zFloatZ 轴加速度(m/s²)

方法

start

javascript
Telegram.WebApp.Accelerometer.start(params, callback)

开始采集加速度数据。

参数类型必填描述
paramsObject启动参数
params.refresh_rateInteger刷新频率(毫秒),默认 1000,范围 20-1000
callbackFunction回调函数,参数 (started)

stop

javascript
Telegram.WebApp.Accelerometer.stop(callback)

停止采集加速度数据。

参数类型必填描述
callbackFunction回调函数,参数 (stopped)

示例

javascript
const accel = Telegram.WebApp.Accelerometer;

accel.start({ refresh_rate: 100 }, (started) => {
  if (started) {
    console.log('加速度计已启动');
  }
});

Telegram.WebApp.onEvent('accelerometerChanged', () => {
  console.log(`X: ${accel.x}, Y: ${accel.y}, Z: ${accel.z}`);
});

// 停止采集
// accel.stop();

DeviceOrientation

设备方向传感器,提供设备在三维空间中的朝向信息。通过 Telegram.WebApp.DeviceOrientation 访问。

属性

属性类型描述
isStartedBoolean传感器是否正在采集数据
absoluteBoolean方向数据是否为绝对值(相对于地球坐标系)
alphaFloatZ 轴旋转角度(0-360°)
betaFloatX 轴旋转角度(-180° 到 180°)
gammaFloatY 轴旋转角度(-90° 到 90°)

方法

start

javascript
Telegram.WebApp.DeviceOrientation.start(params, callback)

开始采集设备方向数据。

参数类型必填描述
paramsObject启动参数
params.refresh_rateInteger刷新频率(毫秒),默认 1000,范围 20-1000
params.need_absoluteBoolean是否需要绝对方向数据,默认 false
callbackFunction回调函数,参数 (started)

stop

javascript
Telegram.WebApp.DeviceOrientation.stop(callback)

停止采集设备方向数据。

参数类型必填描述
callbackFunction回调函数,参数 (stopped)

示例

javascript
const orientation = Telegram.WebApp.DeviceOrientation;

orientation.start({
  refresh_rate: 100,
  need_absolute: true
}, (started) => {
  if (started) {
    console.log('设备方向传感器已启动');
  }
});

Telegram.WebApp.onEvent('deviceOrientationChanged', () => {
  console.log(`Alpha: ${orientation.alpha}`);
  console.log(`Beta: ${orientation.beta}`);
  console.log(`Gamma: ${orientation.gamma}`);
  console.log(`绝对值: ${orientation.absolute}`);
});

Gyroscope

陀螺仪,用于测量设备在三个轴上的角速度。通过 Telegram.WebApp.Gyroscope 访问。

属性

属性类型描述
isStartedBoolean陀螺仪是否正在采集数据
xFloatX 轴角速度(rad/s)
yFloatY 轴角速度(rad/s)
zFloatZ 轴角速度(rad/s)

方法

start

javascript
Telegram.WebApp.Gyroscope.start(params, callback)

开始采集陀螺仪数据。

参数类型必填描述
paramsObject启动参数
params.refresh_rateInteger刷新频率(毫秒),默认 1000,范围 20-1000
callbackFunction回调函数,参数 (started)

stop

javascript
Telegram.WebApp.Gyroscope.stop(callback)

停止采集陀螺仪数据。

参数类型必填描述
callbackFunction回调函数,参数 (stopped)

示例

javascript
const gyro = Telegram.WebApp.Gyroscope;

gyro.start({ refresh_rate: 50 }, (started) => {
  if (started) {
    console.log('陀螺仪已启动');
  }
});

Telegram.WebApp.onEvent('gyroscopeChanged', () => {
  console.log(`角速度 X: ${gyro.x}, Y: ${gyro.y}, Z: ${gyro.z}`);
});

注意事项

  • 所有传感器 API 均需 Bot API 8.0+
  • 并非所有设备都支持传感器,请监听相应的 *Failed 事件处理不支持的情况
  • 使用完毕后请调用 stop() 方法释放传感器资源,节省电量
  • refresh_rate 值越小,数据更新越频繁,但也更耗电