

# [`oro:haptics`](/runtime/docs/javascript/haptics/)

Request optional Android semantic feedback while respecting the application’s saved preference and OS feedback settings. Other platforms reject enabled requests with ENOSYS; an accepted pulse is not proof of physical feedback.

## Related guides

- [Native platform services](/runtime/docs/guides/native-platform-services/)
- [Runtime 0.2 releases](/runtime/docs/guides/releases-0-2/)

## Examples

Use the application's saved opt-in when requesting Android feedback:

```js
import { perform } from 'oro:haptics'

const enabled = localStorage.getItem('haptics-enabled') === 'true'
await perform('confirmation', { enabled })
```

## API reference

<!-- GENERATED: ORO_API_REFERENCE_START -->

### Module specifiers

```text
oro:haptics
```

### TypeScript declarations

These declarations are generated from the runtime's published TypeScript surface.

#### [`oro:haptics`](/runtime/docs/javascript/haptics/)

```ts
declare module "oro:haptics" {
    /**
     * @typedef {object} HapticOptions
     * @property {boolean} [enabled=false] The application's saved user preference.
     */
    /**
     * Requests one feedback pulse. Android respects system/view preferences and
     * suppresses pulses less than 100 ms apart. `true` means accepted by the view,
     * not independently measured physical feedback. Other platforms reject `ENOSYS`.
     * @param {'selection'|'confirmation'|'rejection'} kind
     * @param {HapticOptions} [options]
     * @returns {Promise<boolean>}
     */
    export function perform(kind: "selection" | "confirmation" | "rejection", options?: HapticOptions): Promise<boolean>;
    namespace _default {
        export { perform };
    }
    export default _default;
    export type HapticOptions = {
        /**
         * The application's saved user preference.
         */
        enabled?: boolean;
    };
}
```

<!-- GENERATED: ORO_API_REFERENCE_END -->

## See also

- [JavaScript APIs overview](/runtime/docs/javascript/overview/)
- [All module specifiers](/runtime/docs/javascript/all-modules/)
