如何在 React Native 应用程序中添加触觉反馈/振动?

问题描述 投票:0回答:3

具体来说,我正在尝试获取 TouchableOpacity 以在按下时振动用户的设备,并尝试在应用程序中显示挑战成功模式时添加振动。

请注意,我不需要需要向我的应用程序添加声音效果,只需振动即可。

reactjs react-native haptic-feedback
3个回答
1
投票

经过一番研究,似乎有几个选择:

最简单的不需要外部包的是 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 模块


1
投票

您可以简单地使用react原生振动模块
它非常简单且易于实施!

// Import Vibration module
import { Vibration } from "react-native";

// Vibrate device for x miliseconds
Vibration.vibrate(100);


0
投票

从“react-native”导入{振动};

振动.振动(100);

© www.soinside.com 2019 - 2024. All rights reserved.