# Referência da API do plugin Cordova

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

// Deve ser chamado antes de pushwoosh.onDeviceReady
document.addEventListener('push-notification', function(event) {
	var notification = event.notification;
	// manipule a abertura do push aqui
});

// Inicializa o Pushwoosh. Isso acionará todas as notificações push pendentes na inicialização.
pushwoosh.onDeviceReady({
	appid: "XXXXX-XXXXX",
	serviceName: "XXXX"
});

pushwoosh.registerDevice(
	function(status) {
		var pushToken = status.pushToken;
    	// manipule o registro bem-sucedido aqui
  },
  function(status) {
    // manipule o erro de registro aqui
  }
);
```

## onDeviceReady

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

_\[android, ios, wp8, windows]_\
Inicializa o plugin Pushwoosh e dispara uma mensagem push de início. Deve ser chamado a cada inicialização do aplicativo.

`config.appid` – Código da aplicação Pushwoosh.

`config.serviceName` – Nome do serviço MPNS para a plataforma wp8.

```txt title="example"
// inicializa o Pushwoosh com appid: "PUSHWOOSH_APP_ID", serviceName: "WINDOWS_PHONE_SERVICE". Isso acionará todas as notificações push pendentes na inicialização.
pushwoosh.onDeviceReady({
    appid : "XXXXX-XXXXX",
    serviceName: "XXXX"
});
```

## registerDevice

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

_\[android, ios, wp8, windows]_\
Registra o dispositivo para notificações push e obtém um Token de push.

`success` – callback de sucesso. O token de push é passado como parâmetro “status.pushToken” para este callback

`fail` – callback de erro

```txt title="example"
pushwoosh.registerDevice(
    function(status) {
        alert("Registered with push token: " + status.pushToken);
    },
    function(error) {
        alert("Failed to register: " +  error);
    }
);
```

## unregisterDevice

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

_\[android, ios, wp8, windows]_\
Cancela o registro do dispositivo para o recebimento de notificações push.

`success` – callback de sucesso

`fail` – callback de erro

## setTags

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

_\[android, ios, wp8, windows]_\
Define tags para o dispositivo.

**Parâmetros**

`config` – objeto com tags personalizadas do dispositivo

`success` – callback de sucesso. O token de push é passado como parâmetro “status.pushToken” para este callback

`fail` – callback de erro

```txt title="example"
// define as tags: “deviceName” com o valor “hello” e “deviceId” com o valor 10
pushwoosh.setTags({deviceName:"hello", deviceId:10},
    function() {
        console.warn('setTags success');
    },
    function(error) {
        console.warn('setTags failed');
    }
);

// define a lista de tags "MyTag" com os valores (array) "hello", "world"
pushwoosh.setTags({"MyTag":["hello", "world"]});
```

## getTags

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

_\[android, ios, wp8, windows]_\
Retorna as tags do dispositivo, incluindo as tags padrão.

`success` – callback de sucesso. Recebe as tags como parâmetros

`fail` – callback de erro

```javascript
pushwoosh.getTags(
    function(tags) {
        console.warn('tags for the device: ' + JSON.stringify(tags));
    },
    function(error) {
        console.warn('get tags error: ' + JSON.stringify(error));
    }
);
```

## getPushToken

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

_\[android, ios, wp8, windows]_\
Retorna o token de push se estiver disponível. Observe que o token também vem no callback da função registerDevice.

`success` – callback de sucesso.

```javascript
pushwoosh.getPushToken(
    function(token) {
        console.warn('push token: ' + token);
    }
);
```

## getPushwooshHWID

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

_\[android, ios, wp8, windows]_\
Retorna o HWID da Pushwoosh usado para comunicação com a API da Pushwoosh.

`success` – callback de getPushwooshHWID

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

## getRemoteNotificationStatus

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

_\[android, ios]_\
Retorna o status detalhado das permissões de notificação push.

`callback` – callback de sucesso. Recebe um objeto com as seguintes propriedades:

```
{
  "enabled" : flag de notificações ativadas.
  "pushBadge" : permissão de badges concedida. (somente iOS)
  "pushAlert" : permissão de alerta concedida. (somente iOS)
  "pushSound" : permissão de som concedida. (somente iOS)
}
```

`error` — callback de erro

## setApplicationIconBadgeNumber

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

_\[android, ios]_\
Define o número do emblema (badge) do ícone do aplicativo.

`badgeNumber` – número do emblema do ícone

## getApplicationIconBadgeNumber

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

_\[android, ios]_\
Retorna o número do emblema do ícone do aplicativo.

`callback` – callback de sucesso

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

## addToApplicationIconBadgeNumber

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

_\[android, ios]_\
Adiciona um valor ao emblema do ícone do aplicativo.

`badgeNumber` — número incremental do emblema do ícone

## getLaunchNotification

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

_\[android, ios]_\
Retorna o payload da notificação push se o aplicativo foi iniciado em resposta a uma notificação push, ou nulo.

`callback` – callback de sucesso

## clearLaunchNotification

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

_\[android, ios]_\
Limpa a notificação de inicialização, getLaunchNotification() retornará nulo após esta chamada.

## setUserId

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

_\[android, ios]_\
Define o identificador de usuário – um ID do Facebook, nome de usuário, e-mail ou qualquer outro ID de usuário. Isso permite que dados e eventos sejam correspondidos em vários dispositivos do usuário.

`userId` – identificador de string do usuário

## postEvent

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

_\[android, ios]_\
Publica eventos para Mensagens In-App. Isso pode acionar a exibição de mensagens In-App conforme especificado no Painel de Controle da Pushwoosh.

`event` – evento a ser acionado

`attributes` – objeto com atributos de evento adicionais

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

## createLocalNotification

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

_\[android, ios]_\
Agenda uma notificação local.

`config.msg` – mensagem da notificação

`config.seconds` – atraso da notificação em segundos

`config.userData` – dados adicionais para passar na notificação

`success` – callback de sucesso

`fail` – callback de erro

```
pushwoosh.createLocalNotification({msg:"Your pumpkins are ready!", seconds:30, userData:{}})
```

## clearLocalNotification

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

_\[android]_\
Limpa todas as notificações locais pendentes criadas por createLocalNotification

## clearNotificationCenter

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

_\[android]_\
Limpa todas as notificações apresentadas na Central de Notificações do Android.

## setMultiNotificationMode

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

_\[android]_\
Permite que várias notificações sejam exibidas na Central de Notificações do Android.

## setSingleNotificationMode

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

_\[android]_\
Permite que apenas a última notificação seja exibida na Central de Notificações do Android.

## setSoundType

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

_\[android]_\
Define o som padrão para pushes recebidos.

`type` – Tipo de som (0 – padrão, 1 – sem som, 2 – sempre)

## setVibrateType

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

_\[android]_\
Define o modo de vibração padrão para pushes recebidos.

`type` – Tipo de vibração (0 – padrão, 1 – sem vibração, 2 – sempre)

## setLightScreenOnNotification

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

_\[android]_\
Liga a tela quando uma notificação chega.

`on` – ativar/desativar o desbloqueio de tela (desativado por padrão)

## setEnableLED

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

_\[android]_\
Ativa o piscar do LED quando uma notificação chega e a tela está desligada.

`on` – ativar/desativar o piscar do LED (desativado por padrão)

## setColorLED

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

_\[android]_\
Define a cor do LED. Use com [setEnableLED](#setenableled).

`color` – Cor do LED no formato inteiro ARGB

## getPushHistory

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

_\[android]_\
Retorna um array de notificações push recebidas.

`success` – callback de sucesso

```
pushwoosh.getPushHistory(function(pushHistory) {
    if(pushHistory.length == 0)
        alert("no push history");
    else
        alert(JSON.stringify(pushHistory));
});

pushwoosh.clearPushHistory();
```

## clearPushHistory

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

_\[android]_\
Limpa o histórico de pushes.

## cancelAllLocalNotifications

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

_\[ios]_\
Limpa todas as notificações locais da central de notificações.

## presentInboxUI

_\[android, ios]_\
Abre a tela da [Caixa de Entrada](/pt/developer/guides/message-inbox/mobile-message-inbox).

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

## setCommunicationEnabled

Um método binário que ativa/desativa toda a comunicação com a Pushwoosh. O valor booleano **false** cancela a inscrição do dispositivo para o recebimento de notificações push e interrompe o download de mensagens in-app. O valor **true** reverte o efeito.

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

## removeAllDeviceData

Remove todos os dados sobre o dispositivo.

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

## push-receive

_\[android, ios]_\
Evento de recebimento de notificação push. É disparado quando o aplicativo recebe uma notificação push em primeiro ou segundo plano. Aplicativos fechados não recebem este evento.

**Propriedades do evento**

`message` – (`string`) Mensagem da notificação push

`userdata` – (`object`/`array`) Dados personalizados da notificação push

`onStart` – (`boolean`) É uma notificação de inicialização

`foreground` – (`boolean`) A notificação foi recebida em primeiro plano

`android` – (`object`) Payload de notificação específico do Android

`ios` – (`object`) Payload de notificação específico do iOS

`windows` – (`object`) Payload de notificação específico do Windows

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

		if (typeof(userData) != "undefined") {
			// manipule os dados de notificação personalizados
			console.warn('user data: ' + JSON.stringify(userData));
		}
	}
);
```

## Notificações em primeiro plano

Por padrão, o plugin Pushwoosh não exibe notificações em primeiro plano e aciona automaticamente o evento `push-receive`. Consulte o [guia de personalização do plugin](/pt/developer/pushwoosh-sdk/cross-platform-frameworks/cordova/customizing-cordova-plugin/) para controlar esse comportamento.

### push-notification

_\[android, ios, wp8, windows]_\
Evento de aceite de notificação push. É disparado quando o usuário toca na notificação push.

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

		if (typeof(userData) != "undefined") {
			console.warn('user data: ' + JSON.stringify(userData));
		}
	}
);
```

**Propriedades do evento**

O mesmo que [push-receive](#push-receive)

### additionalAuthorizationOptions

_\[somente ios]_\
Fornece [opções de autorização de notificação](https://developer.apple.com/documentation/usernotifications/unauthorizationoptions?language=objc) _a_dicionais. Deve ser chamado antes de chamar **registerDevice**.

```
pushwoosh.additionalAuthorizationOptions({ 
	"UNAuthorizationOptionCriticalAlert" : 1,
	"UNAuthorizationOptionProvisional": 0 // defina 0 ou não especifique a opção se não quiser adicioná-la ao seu aplicativo. 
});
```