如何在 ios 上获得半毫秒的振动以与 expo 反应原生?

问题描述

如何在与 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>