我正在编写一个本机反应应用程序,而且我注意到虽然按钮在单击时看起来像本机按钮 - 但它们不像一个按钮(至少不像android按钮的行为)。
点击Android应用程序按钮 - 发出声音并向用户提供触觉反馈。 在声音中,我看到有github讨论和公开问题,但我无法找到任何关于触觉反馈的内容。
如何使我的观点(任何可触摸的视图......)在点击上进行触觉反馈? 这在应用程序中非常重要。
我想要这样的东西(在android中)
View view = findViewById(...)
view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY);
这不需要应用程序获得Vibrate
的权限。
使用Vibrate
api自行管理触觉反馈将导致全局禁用此选项的用户体验不良行为
由于
答案 0 :(得分:3)
您可以使用内置振动模块 https://facebook.github.io/react-native/docs/touchablewithoutfeedback.html#props
import { Vibration } from 'react-native';
...
<Touchable
onPressIn={() => Vibration.vibrate()}
/>
请记住将此内容包含在AndroidManifest中
<uses-permission android:name="android.permission.VIBRATE" />
答案 1 :(得分:2)
我在github上发现了这个组件https://github.com/charlesvinette/react-native-haptic
我还没有尝试过,但它可以帮助您获得所需的触觉反馈。
答案 2 :(得分:0)
我在Github上发布了一个提供此功能的项目。 检查此仓库:react-native-haptic-view
答案 3 :(得分:0)
我建议您使用Expo haptics
安装库之后,您可以像这样使用它:
<TouchableOpacity onPress = { ()=> {
Haptics.notificationAsync(Haptics.NotificationFeedbackType.Success)
or
Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Light)
or
Haptics.selectionAsync()
} } > </TouchableOpacity>
答案 4 :(得分:0)
我也有几乎相同的要求,最终我使用了这个库react-native-haptic-feedback。
请记住,触觉反馈仅在某些最新的android设备和iPhone 6s以上的iOS中可用。这是一个简单的代码段:
import ReactNativeHapticFeedback from "react-native-haptic-feedback";
const options = {
enableVibrateFallback: true,
ignoreAndroidSystemSettings: false
};
ReactNativeHapticFeedback.trigger("impactMedium", options);
对于您而言,它可以直接与按钮的onPress方法配合使用,例如:
<TouchableOpacity onPress={()=>{ReactNativeHapticFeedback.trigger("impactMedium", options);}} />
注意:我发现最多设备支持的最通用类型是
impactMedium
。