web-dev-qa-db-ja.com

反応ネイティブのタッチ可能なビューで触覚フィードバックを有効にする

私はreact-nativeアプリを書いていますが、ボタンをクリックするとネイティブボタンのように見えますが、ボタンは1つとして動作しないことに気付きました(少なくともAndroidボタンの動作とは異なります)。

Androidアプリボタン-音を出してユーザーに触覚フィードバックを与えるフィードバック。

クリック時に触覚フィードバックを行うために、自分のビュー(タッチ可能なビュー..)を作成するにはどうすればよいですか?これはアプリにとって本当に重要な感覚です。

このようなものが欲しい(Androidの場合)

View view = findViewById(...)
view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY);

これは、アプリからVibrateの権限を持っている必要はありません。

また、Vibrate apiを使用して自分で触覚フィードバックを管理すると、このオプションをグローバルに無効にしたユーザーに悪い動作が発生します

ありがとう

13
Nadav Nagel

組み込みのバイブレーションモジュールを使用できます facebook.github.io/react-native/docs/touchablewithoutfeedback

import { Vibration } from 'react-native';
...

<TouchableWithoutFeedback
  onPressIn={() => Vibration.vibrate()}
/>

これをAndroidManifestに含めることを忘れないでください

<uses-permission Android:name="Android.permission.VIBRATE" />
4
Ivan Wu

このコンポーネントをgithubで見つけました https://github.com/charlesvinette/react-native-haptic

私はまだ試していませんが、必要な触覚フィードバックを得るのに役立つはずです。

2
David

Expo haptics を使用することをお勧めします

ライブラリをインストールした後、次のように使用できます。

<TouchableOpacity onPress = { ()=> { 
     Haptics.notificationAsync(Haptics.NotificationFeedbackType.Success)
     or
     Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Light) 
     or
     Haptics.selectionAsync()
   
 } } > </TouchableOpacity>
1
A.r. Basith

私もほぼ同じ要件があり、このライブラリを使用することになりました 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であることがわかりました。

0
Umang Loriya

この機能を提供するプロジェクトをGithubで公開しました。このリポジトリをチェックしてください: react-native-haptic-view

0
Hamid