uniapp 触感反馈
触感反馈的实现方式
在UniApp中实现触感反馈(Haptic Feedback)可以通过调用原生API或使用第三方插件。以下为具体方法:
使用uni.vibrateShort和uni.vibrateLong UniApp提供了内置的振动API,适用于iOS和Android平台:

// 短振动(15ms)
uni.vibrateShort({
success: function() { console.log('触发短振动') }
});
// 长振动(400ms)
uni.vibrateLong({
success: function() { console.log('触发长振动') }
});
自定义振动模式(仅Android) 通过修改manifest.json文件配置振动时长:

"android": {
"permissions": ["android.permission.VIBRATE"],
"config": {
"vibrateDuration": 100 // 自定义振动毫秒数
}
}
使用H5的Vibration API(仅部分浏览器支持) 在Web端可通过Navigator接口实现:
if (navigator.vibrate) {
navigator.vibrate(200); // 振动200ms
}
平台差异说明
- iOS:仅支持短/长两种固定振动模式,实际效果取决于设备硬件
- Android:支持自定义振动时长,但需要声明振动权限
- 小程序:基础库2.6.0+支持,部分安卓机型可能有兼容性问题
- H5:兼容性较差,需检测API支持情况
最佳实践建议
- 重要操作反馈使用长振动(如支付成功)
- 普通交互使用短振动(如按钮点击)
- 在
onLoad生命周期中检测API可用性:try { uni.vibrateShort(); } catch (e) { console.warn('振动功能不可用'); }
扩展方案
对于需要复杂振动模式的场景,可考虑:
- 使用Native.js调用原生代码
- 集成cordova-plugin-vibration等第三方插件
- 通过条件编译实现多平台差异化处理
注意:过度使用振动可能影响用户体验,建议在设置中提供关闭选项。

