前言 最近在用 uni-app 开发一款 app,需求中有一项是点击 触感反馈
,查阅了 uni-app 相关文档,发现并没有对应的 API,最开始尝试用 震动
的方式来模拟 触感反馈
, 但是感觉效果并不好,因为 iPhone 并不支持 短震动(15ms)
,只支持 长震动(400ms)
。
在这里记录一下最后的处理方式。
IOS 开启触感反馈 iPhone 使用触感反馈需要手机支持并且在设置中打开,否则并不能触发。核心代码如下:
1 2 3 4 5 6 7 var UIImpactFeedbackGenerator = plus.ios.importClass( 'UIImpactFeedbackGenerator' ) var impact = new UIImpactFeedbackGenerator()impact.prepare() impact.init(1 ) impact.impactOccurred()
只需要在需要触感反馈的地方,把这段代码复制进去就好!
Android 触感反馈 安卓的触感反馈,我目前使用 短震动
进行了模拟,具体可以查看 uni-app 官方文档。 当然插件市场也有人提供了原生的触感反馈的插件:触感反馈
实例代码 在点击底部 Tabbar 的时候,触发触感反馈。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 onTabItemTap() { if (uni.getSystemInfoSync().platform == "ios" ) { let UIImpactFeedbackGenerator = plus.ios.importClass('UIImpactFeedbackGenerator' ); let impact = new UIImpactFeedbackGenerator(); impact.prepare(); impact.init(1 ); impact.impactOccurred(); } if (uni.getSystemInfoSync().platform == "android" ) { uni.vibrateShort({ success: () => { console .log('点击震动' ); } }); } },