# Справочник API плагина Cordova

```txt title="example"
var pushwoosh = cordova.require("pushwoosh-cordova-plugin.PushNotification");

// Должен вызываться перед pushwoosh.onDeviceReady
document.addEventListener('push-notification', function(event) {
	var notification = event.notification;
	// обработайте открытие push-уведомления здесь
});

// Инициализация Pushwoosh. Это вызовет все ожидающие push-уведомления при запуске.
pushwoosh.onDeviceReady({
	appid: "XXXXX-XXXXX",
	serviceName: "XXXX"
});

pushwoosh.registerDevice(
	function(status) {
		var pushToken = status.pushToken;
    	// обработайте успешную регистрацию здесь
  },
  function(status) {
    // обработайте ошибку регистрации здесь
  }
);
```

## onDeviceReady

```javascript
PushNotification.prototype.onDeviceReady = function( config )
```

_\[android, ios, wp8, windows]_\
Инициализирует плагин Pushwoosh и вызывает стартовое push-сообщение. Должен вызываться при каждом запуске приложения.

`config.appid` – Код приложения Pushwoosh.

`config.serviceName` – Имя службы MPNS для платформы wp8.

```txt title="example"
// инициализация Pushwoosh с appid: "PUSHWOOSH_APP_ID", serviceName: "WINDOWS_PHONE_SERVICE". Это вызовет все ожидающие push-уведомления при запуске.
pushwoosh.onDeviceReady({
    appid : "XXXXX-XXXXX",
    serviceName: "XXXX"
});
```

## registerDevice

```javascript
PushNotification.prototype.registerDevice = function( success, fail )
```

_\[android, ios, wp8, windows]_\
Регистрирует устройство для получения push-уведомлений и получает push-токен.

`success` – колбэк успешного выполнения. Push-токен передается в этот колбэк в качестве параметра “status.pushToken”.

`fail` – колбэк ошибки.

```txt title="example"
pushwoosh.registerDevice(
    function(status) {
        alert("Зарегистрировано с push-токеном: " + status.pushToken);
    },
    function(error) {
        alert("Не удалось зарегистрировать: " +  error);
    }
);
```

## unregisterDevice

```javascript
PushNotification.prototype.unregisterDevice = function(	success, fail	)
```

_\[android, ios, wp8, windows]_\
Отменяет регистрацию устройства для получения push-уведомлений.

`success` – колбэк успешного выполнения.

`fail` – колбэк ошибки.

## setTags

```javascript
PushNotification.prototype.setTags = function(	config, success, fail	)
```

_\[android, ios, wp8, windows]_\
Устанавливает теги для устройства.

**Параметры**

`config` – объект с пользовательскими тегами устройства.

`success` – колбэк успешного выполнения. Push-токен передается в этот колбэк в качестве параметра “status.pushToken”.

`fail` – колбэк ошибки.

```txt title="example"
// устанавливает теги: “deviceName” со значением “hello” и “deviceId” со значением 10
pushwoosh.setTags({deviceName:"hello", deviceId:10},
    function() {
        console.warn('setTags success');
    },
    function(error) {
        console.warn('setTags failed');
    }
);

// устанавливает теги-списки "MyTag" со значениями (массив) "hello", "world"
pushwoosh.setTags({"MyTag":["hello", "world"]});
```

## getTags

```javascript
PushNotification.prototype.getTags = function(	success, fail	)
```

_\[android, ios, wp8, windows]_\
Возвращает теги для устройства, включая теги по умолчанию.

`success` – колбэк успешного выполнения. Получает теги в качестве параметров.

`fail` – колбэк ошибки.

```javascript
pushwoosh.getTags(
    function(tags) {
        console.warn('теги для устройства: ' + JSON.stringify(tags));
    },
    function(error) {
        console.warn('ошибка получения тегов: ' + JSON.stringify(error));
    }
);
```

## getPushToken

```javascript
PushNotification.prototype.getPushToken = function(	success	)
```

_\[android, ios, wp8, windows]_\
Возвращает push-токен, если он доступен. Обратите внимание, что токен также приходит в колбэке функции registerDevice.

`success` – колбэк успешного выполнения.

```javascript
pushwoosh.getPushToken(
    function(token) {
        console.warn('push-токен: ' + token);
    }
);
```

## getPushwooshHWID

```javascript
PushNotification.prototype.getPushwooshHWID = function(	success	)
```

_\[android, ios, wp8, windows]_\
Возвращает Pushwoosh HWID, используемый для взаимодействия с Pushwoosh API.

`success` – колбэк getPushwooshHWID.

```
pushwoosh.getPushwooshHWID(
    function(token) {
        console.warn('Pushwoosh HWID: ' + token);
    }
);
```

## getRemoteNotificationStatus

```javascript
PushNotification.prototype.getRemoteNotificationStatus = function(	callback, error	)
```

_\[android, ios]_\
Возвращает подробный статус разрешений на push-уведомления.

`callback` – колбэк успешного выполнения. Получает объект со следующими свойствами:

```
{
  "enabled" : флаг включения уведомлений.
  "pushBadge" : разрешение на значки предоставлено. (только для iOS)
  "pushAlert" : разрешение на оповещения предоставлено. (только для iOS)
  "pushSound" : разрешение на звук предоставлено. (только для iOS)
}
```

`error` — колбэк ошибки.

## setApplicationIconBadgeNumber

```javascript
PushNotification.prototype.setApplicationIconBadgeNumber = function(	badgeNumber	)
```

_\[android, ios]_\
Устанавливает число на значке приложения.

`badgeNumber` – число на значке.

## getApplicationIconBadgeNumber

```javascript
PushNotification.prototype.getApplicationIconBadgeNumber = function(	callback	)
```

_\[android, ios]_\
Возвращает число на значке приложения.

`callback` – колбэк успешного выполнения.

```
pushwoosh.getApplicationIconBadgeNumber(function(badge){ alert(badge);} );
```

## addToApplicationIconBadgeNumber

```javascript
PushNotification.prototype.addToApplicationIconBadgeNumber = function( badgeNumber )
```

_\[android, ios]_\
Добавляет значение к числу на значке приложения.

`badgeNumber` — инкрементальное число на значке.

## getLaunchNotification

```javascript
PushNotification.prototype.getLaunchNotification = function(	callback	)
```

_\[android, ios]_\
Возвращает полезную нагрузку push-уведомления, если приложение было запущено в ответ на push-уведомление, или null.

`callback` – колбэк успешного выполнения.

## clearLaunchNotification

```javascript
PushNotification.prototype.clearLaunchNotification = function(	callback	)
```

_\[android, ios]_\
Очищает уведомление о запуске, getLaunchNotification() вернет null после этого вызова.

## setUserId

```javascript
PushNotification.prototype.setUserId = function(	userId	)
```

_\[android, ios]_\
Устанавливает идентификатор пользователя – Facebook ID, имя пользователя, email или любой другой идентификатор пользователя. Это позволяет сопоставлять данные и события на нескольких устройствах пользователя.

`userId` – строковый идентификатор пользователя.

## postEvent

```javascript
PushNotification.prototype.postEvent = function( event, attributes )
```

_\[android, ios]_\
Отправляет события для In-App сообщений. Это может вызвать отображение In-App сообщения, как указано в панели управления Pushwoosh.

`event` – событие для вызова.

`attributes` – объект с дополнительными атрибутами события.

```
pushwoosh.setUserId("XXXXXX");
pushwoosh.postEvent("buttonPressed", { "buttonNumber" : 4, "buttonLabel" : "banner" });
```

## createLocalNotification

```javascript
PushNotification.prototype.createLocalNotification = function( config, success, fail )
```

_\[android, ios]_\
Планирует локальное уведомление.

`config.msg` – сообщение уведомления.

`config.seconds` – задержка уведомления в секундах.

`config.userData` – дополнительные данные для передачи в уведомлении.

`success` – колбэк успешного выполнения.

`fail` – колбэк ошибки.

```
pushwoosh.createLocalNotification({msg:"Ваши тыквы готовы!", seconds:30, userData:{}})
```

## clearLocalNotification

```javascript
PushNotification.prototype.clearLocalNotification = function()
```

_\[android]_\
Очищает все ожидающие локальные уведомления, созданные createLocalNotification.

## clearNotificationCenter

```javascript
PushNotification.prototype.clearNotificationCenter = function()
```

_\[android]_\
Очищает все уведомления, представленные в центре уведомлений Android.

## setMultiNotificationMode

```javascript
PushNotification.prototype.setMultiNotificationMode = function( success, fail )
```

_\[android]_\
Позволяет отображать несколько уведомлений в центре уведомлений Android.

## setSingleNotificationMode

```javascript
PushNotification.prototype.setSingleNotificationMode = function(	success,
fail	)
```

_\[android]_\
Позволяет отображать только последнее уведомление в центре уведомлений Android.

## setSoundType

```javascript
PushNotification.prototype.setSoundType = function( type, success, fail )
```

_\[android]_\
Устанавливает звук по умолчанию для входящих push-уведомлений.

`type` – Тип звука (0 – по умолчанию, 1 – без звука, 2 – всегда).

## setVibrateType

```javascript
PushNotification.prototype.setVibrateType = function(type, success, fail )
```

_\[android]_\
Устанавливает режим вибрации по умолчанию для входящих push-уведомлений.

`type` – Тип вибрации (0 – по умолчанию, 1 – без вибрации, 2 – всегда).

## setLightScreenOnNotification

```javascript
PushNotification.prototype.setLightScreenOnNotification = function( on, success, fail )
```

_\[android]_\
Включает экран при поступлении уведомления.

`on` – включить/выключить разблокировку экрана (по умолчанию отключено).

## setEnableLED

```javascript
PushNotification.prototype.setEnableLED = function( on, success, fail )
```

_\[android]_\
Включает мигание светодиода при поступлении уведомления и выключенном дисплее.

`on` – включить/выключить мигание светодиода (по умолчанию отключено).

## setColorLED

```javascript
PushNotification.prototype.setColorLED = function( color, success, fail )
```

_\[android]_\
Устанавливает цвет светодиода. Используйте с [setEnableLED](#setenableled).

`color` – Цвет светодиода в целочисленном формате ARGB.

## getPushHistory

```javascript
PushNotification.prototype.getPushHistory = function(	success	)
```

_\[android]_\
Возвращает массив полученных push-уведомлений.

`success` – колбэк успешного выполнения.

```
pushwoosh.getPushHistory(function(pushHistory) {
    if(pushHistory.length == 0)
        alert("нет истории push-уведомлений");
    else
        alert(JSON.stringify(pushHistory));
});

pushwoosh.clearPushHistory();
```

## clearPushHistory

```javascript
PushNotification.prototype.clearPushHistory = function()
```

_\[android]_\
Очищает историю push-уведомлений.

## cancelAllLocalNotifications

```javascript
PushNotification.prototype.cancelAllLocalNotifications = function( callback )
```

_\[ios]_\
Очищает все локальные уведомления из центра уведомлений.

## presentInboxUI

_\[android, ios]_\
Открывает экран [Входящие](/ru/developer/guides/message-inbox/mobile-message-inbox).

```javascript
PushNotification.prototype.presentInboxUI = function()
```

## setCommunicationEnabled

Бинарный метод, включающий/отключающий все коммуникации с Pushwoosh. Логическое значение **false** отписывает устройство от получения push-уведомлений и останавливает загрузку in-app сообщений. Значение **true** отменяет этот эффект.

```javascript
PushNotification.prototype.setCommunicationEnabled = function(enable, success, fail)
```

## removeAllDeviceData

Удаляет все данные об устройстве.

```javascript
PushNotification.prototype.removeAllDeviceData = function()
```

## push-receive

_\[android, ios]_\
Событие получения push-уведомления. Срабатывает, когда приложение получает push-уведомление в активном или фоновом режиме. Закрытые приложения не получают это событие.

**Свойства события**

`message` – (`string`) Сообщение push-уведомления

`userdata` – (`object`/`array`) Пользовательские данные push-уведомления

`onStart` – (`boolean`) Является ли уведомлением о запуске

`foreground` – (`boolean`) Получено ли уведомление в активном режиме

`android` – (`object`) Специфичная для Android полезная нагрузка уведомления

`ios` – (`object`) Специфичная для iOS полезная нагрузка уведомления

`windows` – (`object`) Специфичная для Windows полезная нагрузка уведомления

```
document.addEventListener('push-receive',
	function(event) {
		var userData = event.notification.userdata;

		if (typeof(userData) != "undefined") {
			// обработка пользовательских данных уведомления
			console.warn('пользовательские данные: ' + JSON.stringify(userData));
		}
	}
);
```

## Уведомления в активном режиме

По умолчанию плагин Pushwoosh не отображает уведомления в активном режиме и автоматически вызывает событие `push-receive`. См. [руководство по настройке плагина](/ru/developer/pushwoosh-sdk/cross-platform-frameworks/cordova/customizing-cordova-plugin/) для управления этим поведением.

### push-notification

_\[android, ios, wp8, windows]_\
Событие принятия push-уведомления. Срабатывает, когда пользователь нажимает на push-уведомление.

```
document.addEventListener('push-notification',
	function(event) {
		var message = event.notification.message;
		var userData = event.notification.userdata;

		if (typeof(userData) != "undefined") {
			console.warn('пользовательские данные: ' + JSON.stringify(userData));
		}
	}
);
```

**Свойства события**

Аналогично [push-receive](#push-receive)

### additionalAuthorizationOptions

_\[только для ios]_\
Предоставляет _д_ополнительные [опции авторизации уведомлений](https://developer.apple.com/documentation/usernotifications/unauthorizationoptions?language=objc). Должен вызываться перед вызовом **registerDevice**.

```
pushwoosh.additionalAuthorizationOptions({ 
	"UNAuthorizationOptionCriticalAlert" : 1,
	"UNAuthorizationOptionProvisional": 0 // установите 0 или не указывайте опцию, если не хотите добавлять ее в свое приложение. 
});
```