uniapp 如何实现震动功能
在uniapp中如何实现震动功能?官方文档没有找到明确的API说明,是否有插件或方法可以实现这个功能?希望提供具体的代码示例和使用场景说明。
2 回复
在uni-app中,使用uni.vibrate()即可实现震动。例如:
uni.vibrateShort(); // 短震动
uni.vibrateLong(); // 长震动
注意:H5端不支持,需在App或小程序中使用。
在 UniApp 中,可以通过调用 uni.vibrate() 方法实现设备震动功能。此方法基于微信小程序等平台的震动 API 封装,兼容 H5、App 及小程序环境,但不同平台支持程度可能略有差异。
实现步骤:
- 调用震动 API:使用
uni.vibrate()触发短震动(约15ms)。如果需要长震动或自定义时长,可使用uni.vibrateLong()或平台特定 API。 - 处理兼容性:在 H5 端可能不支持,建议先检查平台或使用条件编译。
示例代码:
// 短震动(推荐)
uni.vibrate({
success: () => {
console.log('震动成功');
},
fail: (err) => {
console.log('震动失败:', err);
}
});
// 长震动(部分平台支持)
uni.vibrateLong({
success: () => {
console.log('长震动成功');
}
});
注意事项:
- 平台差异:
- 微信小程序:支持短震动和长震动。
- App 端:需确认原生模块权限,可能需配置震动权限(Android)。
- H5 端:通常不支持,部分浏览器需用户手势触发。
- 用户权限:在 App 中,Android 需在 manifest.json 添加
<uses-permission android:name="android.permission.VIBRATE" />。 - 体验优化:避免频繁调用,以免影响用户体验。
通过以上方法即可快速实现震动功能,建议在实际使用前测试目标平台的兼容性。

