# OneSignal Push Notification

{% hint style="info" %}

<pre data-overflow="wrap"><code>You'll need to import the javascript file in your website before starting from this <a data-footnote-ref href="#user-content-fn-1">link</a>.
</code></pre>

{% endhint %}

**getPlayerId**: It returns playerId from OneSignal - that can be used to send custom notification from OneSignalApis.

{% tabs %}
{% tab title="Plain Javascript" %}

```
const { getPlayerId } = WTN.OneSignal;

getPlayerId().then(function(playerId){
  if(playerId){
    // handle for playerId
    console.log(playerId)
  }
});

```

{% endtab %}

{% tab title="ES5+" %}

```
import { getPlayerId } from "webtonative/OneSignal";

getPlayerId().then(function(playerId){
  if(playerId){
    // handle for playerId
    console.log(playerId)
  }
});

```

{% endtab %}
{% endtabs %}

**setExternalUserId**: To set unique user Id to OneSignal.

{% tabs %}
{% tab title="Plain Javascript" %}

<pre><code>const { setExternalUserId } = WTN.OneSignal;

<strong>setExternalUserId("#$%jfnkjf");
</strong>
</code></pre>

{% endtab %}

{% tab title="ES5+" %}

```
import { setExternalUserId } from "webtonative/OneSignal";

setExternalUserId("#$%jfnkjf");

```

{% endtab %}
{% endtabs %}

**removeExternalUserId**: To remove externalUserId

{% tabs %}
{% tab title="Plain Javascript" %}

```
const { removeExternalUserId } = WTN.OneSignal;

removeExternalUserId();

```

{% endtab %}

{% tab title="ES5+" %}

```
import { removeExternalUserId } from "webtonative/OneSignal";

removeExternalUserId();

```

{% endtab %}
{% endtabs %}

**setTags**: To add custom data attributes to your OneSignal Users

{% tabs %}
{% tab title="Plain Javascript" %}

```
const { setTags } = WTN.OneSignal;

setTags({
  tags:{
    type:'PREMIUM'
  }
});

```

{% endtab %}

{% tab title="ES5+" %}

```
import { setTags } from "webtonative/OneSignal";

setTags({
  tags:{
    type:'PREMIUM'
  }
});

```

{% endtab %}
{% endtabs %}

**Triggers:** [**https://documentation.onesignal.com/docs/iam-triggers**](https://documentation.onesignal.com/docs/iam-triggers)

**addTrigger**

{% tabs %}
{% tab title="Plain Javascript" %}

```
const { addTrigger } = WTN.OneSignal;

addTrigger({
    key: "Trigger Key",
    value: "Trigger Value"
});

```

{% endtab %}

{% tab title="ES5+" %}

```
import { addTrigger } from "webtonative/OneSignal";

addTrigger({
    key: "Trigger Key",
    value: "Trigger Value"
});

```

{% endtab %}
{% endtabs %}

**addTriggers**

{% tabs %}
{% tab title="Plain Javascript" %}

```
const { addTriggers } = WTN.OneSignal;

addTriggers({
    triggers: [
        {
            key: "Trigger Key 1",
            value: "Trigger Value 1"
        },
        {
            key: "Trigger Key 2",
            value: "Trigger Value 2"
        }
    ]
});

```

{% endtab %}

{% tab title="ES5+" %}

```
import { addTriggers } from "webtonative/OneSignal";

addTriggers({
    triggers: [
        {
            key: "Trigger Key 1",
            value: "Trigger Value 1"
        },
        {
            key: "Trigger Key 2",
            value: "Trigger Value 2"
        }
    ]
});

```

{% endtab %}
{% endtabs %}

**removeTrigger**

{% tabs %}
{% tab title="Plain Javascript" %}

```
const { removeTrigger } = WTN.OneSignal;

removeTrigger({
    key: "Trigger Key"
});

```

{% endtab %}

{% tab title="ES5+" %}

```
import { removeTrigger } from "webtonative/OneSignal";

removeTrigger({
    key: "Trigger Key"
});

```

{% endtab %}
{% endtabs %}

**removeTriggers**

{% tabs %}
{% tab title="Plain Javascript" %}

```
const { removeTriggers } = WTN.OneSignal;

removeTriggers({
    keys: [ "Trigger Key 1" , "Trigger Key 2" ]
});

```

{% endtab %}

{% tab title="ES5+" %}

```
import { removeTriggers } from "webtonative/OneSignal";

removeTriggers({
    keys: [ "Trigger Key 1" , "Trigger Key 2" ]
});

```

{% endtab %}
{% endtabs %}

**getTriggerValue - depricated**

{% tabs %}
{% tab title="Plain Javascript" %}

```
const { getTriggerValue } = WTN.OneSignal;

getTriggerValue({
    key: "Trigger Key",
    callback: function(data){
        if(data.isSuccess){
            //data.value contains trigger value for corresponding key
        }
    }
});

```

{% endtab %}

{% tab title="ES5+" %}

```
import { getTriggerValue } from "webtonative/OneSignal";

getTriggerValue({
    key: "Trigger Key",
    callback: function(data){
        if(data.isSuccess){
            //data.value contains trigger value for corresponding key
        }
    }
});

```

{% endtab %}
{% endtabs %}

**getTriggers - depricated**

{% tabs %}
{% tab title="Plain Javascript" %}

```
const { getTriggers } = WTN.OneSignal;

getTriggers({
    callback:function(data){
        if(data.isSuccess){
            //data.triggers contains list of active trigger
            /*
                e.g.     
                {
                    key: "Trigger Key 1",
                    value: "Trigger Value 1"
                },
                {
                    key: "Trigger Key 2",
                    value: "Trigger Value 2"
                }
            /*
        }
    }
});

```

{% endtab %}

{% tab title="ES5+" %}

```
import { getTriggers } from "webtonative/OneSignal";

getTriggers({
    callback:function(data){
        if(data.isSuccess){
            //data.triggers contains list of active trigger
            /*
                e.g.     
                {
                    key: "Trigger Key 1",
                    value: "Trigger Value 1"
                },
                {
                    key: "Trigger Key 2",
                    value: "Trigger Value 2"
                }
            /*
        }
    }
});

```

{% endtab %}
{% endtabs %}

## Setting Email and SMS Numbers

{% hint style="info" %}
Feature released on 12/06/2023
{% endhint %}

Available only on Android

**Setting and Logging Out Email**

{% tabs %}
{% tab title="Plain Javascript" %}

```
const { setEmail, logoutEmail } = WTN.OneSignal;

setEmail({
    emailId:"abc@xyz.com"
});

logoutEmail({
    emailId:"abc@xyz.com"
});

```

{% endtab %}

{% tab title="ES5+" %}

```
import { setEmail, logoutEmail } from "webtonative/OneSignal";

setEmail({
    emailId:"abc@xyz.com"
});

logoutEmail();
```

{% endtab %}
{% endtabs %}

**Setting and Logging Out SMS Number**

{% tabs %}
{% tab title="Plain Javascript" %}

```
const { setEmail, logoutEmail } = WTN.OneSignal;

setSMSNumber({
    smsNumber:"+911234567890"
});
//Pass Mobile Number with ISD Code

logoutSMSNumber({
    smsNumber:"+911234567890"
}); 
```

{% endtab %}

{% tab title="ES5+" %}

```
import { setSMSNumber, logoutSMSNumber } from "webtonative/OneSignal";

setSMSNumber({
    smsNumber:"+911234567890"
});
//Pass Mobile Number with ISD Code

logoutSMSNumber();
```

{% endtab %}
{% endtabs %}

* Changes done on 26th June, 2024 for Android targetSdk 34. Now for logout the email and number is mandatory for the required functions.

## OptIn and OptOut Functions

{% hint style="info" %}
Feature added on 06/12/2024
{% endhint %}

This can be used to manually optin and optout users from OnrSignal.

{% tabs %}
{% tab title="Plain Javascript" %}
const { optInUser, optOutUser } = WTN.OneSignal;

optInUser();

optOutUser();
{% endtab %}

{% tab title="ES5+" %}
import { optInUser, optOutUser } from "webtonative/OneSignal";

optInUser();

optOutUser();
{% endtab %}
{% endtabs %}

[^1]: <https://docs.webtonative.com/javascript-apis/getting-started>
