如何在ios上通过expo反应本机获得半毫秒振动?

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

如何在 ios 上使用 expo React Native 获得半毫秒的振动?类似于在手机键盘上打字时收到的振动。 我似乎用这个

Vibration.vibrate([0, 0, 0, 30])
在 android 上得到了它,但它在 ios 上没有复制相同的

下面是代码

<TouchableOpacity onPress={() => Vibration.vibrate([0, 0, 0, 30])} style={{ marginTop: 100, alignItems: 'center' }}>
        <Text style={{ fontSize: 20 }}>Vibrate</Text>
</TouchableOpacity>
javascript react-native expo vibration
3个回答
1
投票

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>

0
投票

react-native-haptic-feedback
在 iOS 上实现了这一点 正如 Medet Tleukabiluly 所提到的,这里是链接:https://github.com/junina-de/react-native-haptic-feedback/但不幸的是它对我来说在 Android 上不起作用。


0
投票

这对我有用:

振动100ms

睡眠/50ms无振动

振动100ms

睡眠/100ms无振动

Vibration.vibrate([100, 50, 100, 100]);

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