具体来说,我正在尝试获取 TouchableOpacity 以在按下时振动用户的设备,并尝试在应用程序中显示挑战成功模式时添加振动。
请注意,我不需要需要向我的应用程序添加声音效果,只需振动即可。
经过一番研究,似乎有几个选择:
最简单的不需要外部包的是 React Native 的振动模块 - 这是一个快速而肮脏的如何使用可触摸或在回调中触发的方法。
请注意,振动以毫秒为单位,因此 Vibration.vibrate(100) 将振动 1/10 秒
<TouchableOpacity
onPress={() => {
setModalVisible(true);
Vibration.vibrate(100);
}}
style={{height:50, width: 50, borderRadius:15, backgroundColor:'blue'}
/>
在 Android 设备上,您需要通过添加以下行来将触觉应用程序权限包含在清单文件中
<uses-permission android:name="android.permission.VIBRATE" />
该模块还支持将多个振动串在一起以创建复杂的振动模式
这是一个例子:
振动500ms
睡眠(无振动)300ms
振动200ms
睡眠 100 毫秒
振动500ms
Vibration.vibrate([500, 300, 200, 100, 500]);
然而,值得注意的是,虽然这是它“应该”工作的方式,但根据我的经验,使用这些模式时,触觉感觉不太精确,需要进行一些尝试和错误才能获得正确的感觉。在执行复杂的振动模式时,其他触觉反馈选项之一可能会更好......
其他触觉反馈选项:
react-native-haptic-feedback 包 - 这确实需要针对 iOS 和 android 进行一些额外的配置
如果您正在使用 Expo,那么您可以使用 Expo Haptics 模块
您可以简单地使用react原生振动模块。
它非常简单且易于实施!
// Import Vibration module
import { Vibration } from "react-native";
// Vibrate device for x miliseconds
Vibration.vibrate(100);
从“react-native”导入{振动};
振动.振动(100);