> For the complete documentation index, see [llms.txt](https://en.docs.monaca.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://en.docs.monaca.io/reference/core-cordova-plugins/cordova-11.0/vibration-plugin.md).

# Vibration Plugin

Tested Version: [3.1.1](https://github.com/apache/cordova-plugin-vibration/releases/tag/3.1.1)

{% hint style="info" %}
This document is based on the original Cordova docs available at [Cordova Docs](https://github.com/apache/cordova-plugin-vibration).
{% endhint %}

This plugin aligns with the [W3C vibration specification](http://www.w3.org/TR/vibration/).

This plugin provides a way to vibrate the device.

This plugin defines global objects including `navigator.vibrate`.

Although in the global scope, they are not available until after the `deviceready` event.

```javascript
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
    console.log(navigator.vibrate);
}
```

## Plugin ID

```javascript
cordova-plugin-vibration
```

## Adding the Plugin in Monaca

In order to use this plugin, please [enable](/products_guide/monaca_ide/dependencies/cordova_plugin.md#importing-cordova-plugins) `Vibration` plugin in Monaca Cloud IDE.

## Supported Platforms

* Android
* iOS

{% hint style="info" %}
`navigator.notification.vibrateWithPattern` & `navigator.notification.cancelVibration` are not working on iOS platform.
{% endhint %}

## API Reference

### vibrate (recommended)

This function has three different functionalities based on parameters passed to it.

### Standard vibrate

Vibrates the device for a given amount of time.

```javascript
    navigator.vibrate(time)
```

or

```javascript
    navigator.vibrate([time])
```

* **time**: Milliseconds to vibrate the device. *(Number)*

#### Example

```javascript
    // Vibrate for 3 seconds
    navigator.vibrate(3000);

    // Vibrate for 3 seconds
    navigator.vibrate([3000]);
```

#### iOS Quirks

* **time**: Ignores the specified time and vibrates for a pre-set amount of time.

  `javascriptnavigator.vibrate(3000); // 3000 is ignored`

### Vibrate with a pattern (Android only)

Vibrates the device with a given pattern

```javascript
    navigator.vibrate(pattern);
```

* **pattern**: Sequence of durations (in milliseconds) for which to turn on or off the vibrator. *(Array of Numbers)*

#### Example

```javascript
    // Vibrate for 1 second
    // Wait for 1 second
    // Vibrate for 3 seconds
    // Wait for 1 second
    // Vibrate for 5 seconds
    navigator.vibrate([1000, 1000, 3000, 1000, 5000]);
```

### Cancel vibration (not supported in iOS)

Immediately cancels any currently running vibration.

```javascript
    navigator.vibrate(0)
```

or

```javascript
    navigator.vibrate([])
```

or

```javascript
    navigator.vibrate([0])
```

Passing in a parameter of 0, an empty array, or an array with one element of value 0 will cancel any vibrations.

### notification.vibrate (deprecated)

Vibrates the device for a given amount of time.

```javascript
    navigator.notification.vibrate(time)
```

* **time**: Milliseconds to vibrate the device. *(Number)*

#### Example

```javascript
    // Vibrate for 2.5 seconds
    navigator.notification.vibrate(2500);
```

#### iOS Quirks

* **time**: Ignores the specified time and vibrates for a pre-set amount of time.

```javascript
    navigator.notification.vibrate();
    navigator.notification.vibrate(2500);   // 2500 is ignored
```

### notification.vibrateWithPattern (deprecated)

Vibrates the device with a given pattern.

```javascript
    navigator.notification.vibrateWithPattern(pattern, repeat)
```

* **pattern**: Sequence of durations (in milliseconds) for which to turn on or off the vibrator. *(Array of Numbers)*
* **repeat**: Optional index into the pattern array at which to start repeating (will repeat until canceled), or -1 for no repetition (default). *(Number)*

#### Example

```javascript
// Immediately start vibrating
// vibrate for 100ms,
// wait for 100ms,
// vibrate for 200ms,
// wait for 100ms,
// vibrate for 400ms,
// wait for 100ms,
// vibrate for 800ms,
// (do not repeat)
navigator.notification.vibrateWithPattern([0, 100, 100, 200, 100, 400, 100, 800]);
```

### notification.cancelVibration (deprecated)

Immediately cancels any currently running vibration.

```javascript
    navigator.notification.cancelVibration()
```

{% hint style="info" %}
Due to alignment with w3c spec, the starred methods will be phased out.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://en.docs.monaca.io/reference/core-cordova-plugins/cordova-11.0/vibration-plugin.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
