Skip to content

Files

Latest commit

8c8e74b · Aug 1, 2024

History

History

haptics

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Mar 23, 2023
Aug 25, 2022
Aug 1, 2024
Aug 25, 2022
Jun 9, 2023
Aug 25, 2022
Aug 1, 2024
Aug 1, 2024
Apr 7, 2024
Aug 25, 2022
Aug 25, 2022

@nativescript/haptics

A plugin that allows you to add haptics to your app.

Playing haptics can engage people's sense of touch and bring their familiarity with the physical world into your app or game. ~ Developer docs

Thanks to Eddy Verbruggen for providing nativescript-taptic-engine as this continues its evolution by streamlining the API and adding Android support, inspired by react-native-haptic-feedback.

Contents

Installation

npm install @nativescript/haptics

Use @nativescript/haptics

Find an example of @nativescript/haptics usage here on StackBlitz.

API

The plugin provides the API below.

isSupported()

isHapticsSupported: boolean = Haptics.isSupported()

Checks if haptics is supported on the device.


selection()

import { Haptics } from "@nativescript/haptics";

Haptics.selection();

notification()

import { Haptics, HapticNotificationType } from "@nativescript/haptics";

Haptics.notification(HapticNotificationType.ERROR);

Use notification feedback generators to indicate success, failure, and warning.

Other haptic notification types are:

  • SUCCESS(default)
  • WARNING

impact()

import { Haptics, HapticImpactType } from "@nativescript/haptics";

Haptics.impact(HapticImpactType.HEAVY);

Use impact feedback generators to indicate that an impact has occurred. For example, you might trigger impact feedback when a user interface object collides with something or snaps into place.

There are 3 impact types:

  • LIGHT
  • MEDIUM (default)
  • HEAVY.

HapticsFallback

To use the haptics fallbacks, check if there is support:

if (!Haptics.isSupported()) {
  // use HapticsFallback
}

BEWARE This uses an undocumented feature that may get your app rejected when reviewed by Apple. People have used this approach without problems though.

weakBoom()

This triggers the same effect as the 'Peek' in 'Peek & Pop', a very brief vibration.

import { HapticsFallback } from "@nativescript/haptics";

HapticsFallback.weakBoom();

strongBoom()

import { HapticsFallback } from "@nativescript/haptics";

HapticsFallback.strongBoom();

This triggers the Pop effect of Peek & Pop, which is a bit more profound than the Peek effect.

burst()

import { HapticsFallback } from "@nativescript/haptics";

HapticsFallback.burst();

This triggers the Nope effect you get when force-touching a home icon that doesn't have any action. It's a short burst of 3-ish 'weak booms'.

Changelog

  • 3.0.0 Moved to @nativescript/haptics and added Android support. Adjusted naming conventions.
  • 2.1.0 Modernized the code a little, migrated to the plugin seed structure, and added a Vue demo.
  • 2.0.0 Added official API for iPhone 7. Moved the old API to TapticEngineUnofficial.*. Requires Xcode 8 to build.
  • 1.0.0 Initial release, unofficial API only. Compatible with any Xcode version.

License

Apache License Version 2.0