Skip to content
React-Native Haptic Feedback for iOS with Android similar behaviour.
Branch: master
Clone or download
Michael Kuczera
Michael Kuczera version bump
Latest commit 4629be9 Jul 12, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
android debugging and tinkering Apr 3, 2019
ios don't need the deprecated method Apr 4, 2019
.gitattributes init Jan 3, 2018
.gitignore init Jan 3, 2018
.npmignore set proper npmignore Jun 6, 2018
LICENSE Create LICENSE Jun 1, 2018 Update Readme May 8, 2019
RNReactNativeHapticFeedback.podspec Update RNReactNativeHapticFeedback.podspec Jul 6, 2019
index.d.ts rename types May 8, 2019
index.js reorganized Apr 9, 2019
package.json version bump Jul 12, 2019


Contributions welcome

Right now the Android implementation is a small Vibrate pattern, similar to the "feeling" of the iOS haptic system. Android needs to be View bound to trigger the real haptic engine. So i want to enhance the Library to support a . For iOS it´s pretty simple to archieve this behaviour. If there are any recommendations for the Java part of this (trigger the haptic feedback and give support to all the options of a TouchableWithoutFeedback), feel free to make a PR :)

Getting started

$ npm install react-native-haptic-feedback --save


$ yarn add react-native-haptic-feedback


$ react-native link react-native-haptic-feedback

Or Manual installation


  1. In XCode, in the project navigator, right click LibrariesAdd Files to [your project's name]
  2. Go to node_modulesreact-native-haptic-feedback and add RNReactNativeHapticFeedback.xcodeproj
  3. In XCode, in the project navigator, select your project. Add libRNReactNativeHapticFeedback.a to your project's Build PhasesLink Binary With Libraries
  4. Run your project (Cmd+R)<


  1. Open up android/app/src/main/java/[...]/
  • Add import com.mkuczera.RNReactNativeHapticFeedbackPackage; to the imports at the top of the file
  • Add new RNReactNativeHapticFeedbackPackage() to the list returned by the getPackages() method
  1. Append the following lines to android/settings.gradle:
    include ':react-native-haptic-feedback'
    project(':react-native-haptic-feedback').projectDir = new File(rootProject.projectDir, 	'../node_modules/react-native-haptic-feedback/android')
  2. Insert the following lines inside the dependencies block in android/app/build.gradle:
      compile project(':react-native-haptic-feedback')


import ReactNativeHapticFeedback from "react-native-haptic-feedback";

const options = {
  enableVibrateFallback: true,
  ignoreAndroidSystemSettings: false

ReactNativeHapticFeedback.trigger("impactLight", options);

Available methods

trigger(method, options)

Argument Description
method Possible values are "selection", "impactLight", "impactMedium", "impactHeavy", "notificationSuccess", "notificationWarning", "notificationError" (default: "selection")
options.enableVibrateFallback  iOS only. if haptic feedback is not available (iOS < 10 OR Device < iPhone6s), vibrate with default method (heavy 1s)
options.ignoreAndroidSystemSettings Android only. if Haptic is disabled in the Android system settings this will allow ignoring the setting and trigger haptic feeback.

Available methods version 1.6.0 and prior

trigger(method, enableVibrateFallback)

Argument Description
method Possible values are "selection", "impactLight", "impactMedium", "impactHeavy", "notificationSuccess", "notificationWarning", "notificationError" (default: "selection")
enableVibrateFallback  iOS only. if haptic feedback is not available (iOS < 10 OR Device < iPhone6s), vibrate with default method (heavy 1s)
You can’t perform that action at this time.