问题描述
如何在与 expo 原生反应的 ios 上获得半毫秒的振动?类似于在手机键盘上打字时的振动。
我似乎用这个 Vibration.vibrate([0,30])
在 android 上得到它,但它没有在 ios 上复制相同
这是下面的代码
<TouchableOpacity onPress={() => Vibration.vibrate([0,30])} style={{ marginTop: 100,alignItems: 'center' }}>
<Text style={{ fontSize: 20 }}>Vibrate</Text>
</TouchableOpacity>
解决方法
react-native 中的振动是特定于平台的。
import { Vibration,Platform } from "react-native";
// vibrate is platform specific. default is 400ms
const vibrate = () => {
if (Platform.OS === "ios") {
// this logic works in android too. you could omit the else statement
const interval = setInterval(() => Vibration.vibrate(),1000);
// it will vibrate for 5 seconds
setTimeout(() => clearInterval(interval),5000);
} else {
Vibration.vibrate(5000);
}
};
然后将其用作回调:
<TouchableOpacity onPress={vibrate} style={{ marginTop: 100,alignItems: 'center' }}>
<Text style={{ fontSize: 20 }}>Vibrate</Text>
</TouchableOpacity>