私はreact-nativeアプリを書いていますが、ボタンをクリックするとネイティブボタンのように見えますが、ボタンは1つとして動作しないことに気付きました(少なくともAndroidボタンの動作とは異なります)。
Androidアプリボタン-音を出してユーザーに触覚フィードバックを与えるフィードバック。
クリック時に触覚フィードバックを行うために、自分のビュー(タッチ可能なビュー..)を作成するにはどうすればよいですか?これはアプリにとって本当に重要な感覚です。
このようなものが欲しい(Androidの場合)
View view = findViewById(...)
view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY);
これは、アプリからVibrate
の権限を持っている必要はありません。
また、Vibrate
apiを使用して自分で触覚フィードバックを管理すると、このオプションをグローバルに無効にしたユーザーに悪い動作が発生します
ありがとう
組み込みのバイブレーションモジュールを使用できます facebook.github.io/react-native/docs/touchablewithoutfeedback
import { Vibration } from 'react-native';
...
<TouchableWithoutFeedback
onPressIn={() => Vibration.vibrate()}
/>
これをAndroidManifestに含めることを忘れないでください
<uses-permission Android:name="Android.permission.VIBRATE" />
このコンポーネントをgithubで見つけました https://github.com/charlesvinette/react-native-haptic
私はまだ試していませんが、必要な触覚フィードバックを得るのに役立つはずです。
Expo haptics を使用することをお勧めします
ライブラリをインストールした後、次のように使用できます。
<TouchableOpacity onPress = { ()=> {
Haptics.notificationAsync(Haptics.NotificationFeedbackType.Success)
or
Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Light)
or
Haptics.selectionAsync()
} } > </TouchableOpacity>
私もほぼ同じ要件があり、このライブラリを使用することになりました react-native-haptic-feedback 。
触覚フィードバックは、一部の最新のAndroidデバイスおよびiPhone6s以降の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
であることがわかりました。
この機能を提供するプロジェクトをGithubで公開しました。このリポジトリをチェックしてください: react-native-haptic-view