Utility Methods API for Vue SDK

The methods on this page are utility methods that don't fit into other categories.

Close PubNub

End all open requests and close the PubNub instance.

Basic Usage

import PubNubVue from 'pubnub-vue';

const pubnub = PubNubVue.getInstance();

pubnub.stop();

Decrypt

This function allows to decrypt the data.

Method(s)

To decrypt the data you can use the following method(s) in Vue SDK.

decrypt(data: string, customCipherKey: ?string)
* required
ParameterDescription
data *
Type: String
The data to decrypt.
customCipherKey
Type: String
If it's not provided, the cipher key from config will be used.

Basic Usage

import PubNubVue from 'pubnub-vue';

const pubnub = PubNubVue.getInstance();

const decrypted = pubnub.decrypt(encrypted, 'myCipherKey'); // Pass the encrypted data as the first parameter in decrypt Method

Returns

It returns the decrypted data as an object.

Encrypt

This function allows to encrypt the data.

Method(s)

To encrypt the data you can use the following method(s) in Vue SDK.

encrypt(data: string, customCipherKey: ?string)
* required
ParameterDescription
data *
Type: String
The data to encrypt.
customCipherKey
Type: String
If it's not provided, the cipher key from config will be used.

Basic Usage

import PubNubVue from 'pubnub-vue';

const pubnub = PubNubVue.getInstance();

const sCypher = "testCypher";
const msgContent = "This is the data I wish to encrypt.";
console.log('msgContent: '+ msgContent);

// Encrypt with pubnub
const encryptedMessage = pubnub.encrypt(JSON.stringify(msgContent), sCypher);
console.log('encryptedMessage PN: '+ encryptedMessage);

Returns

It returns the encrypted data as string.

Reconnect

Call the reconnect method to force the SDK to try and reach out PubNub.

Method(s)

To reconnect the data you can use the following method(s) in Vue SDK.

reconnect()

This method doesn't take any arguments.

Basic Usage

import PubNubVue from 'pubnub-vue';

const pubnub = PubNubVue.getInstance();

pubnub.reconnect();

Time

This function will return a 17 digit precision Unix epoch.

The timetoken is constructed using the following algorithm:
timetoken = (Unix epoch time in seconds) * 10000000

Example of creating a timetoken for a specific time and date

08/19/2013 @ 9:20pm in UTC = 1376961606
timetoken = 1376961606 * 10000000
timetoken = 13769616060000000

Method(s)

To fetch Time you can use the following method(s) in Vue SDK:

time(Function callback)
* required
ParameterDescription
callback *
Type: Function
Callback is called after a successful return.

Basic Usage

import PubNubVue from 'pubnub-vue';

const pubnub = PubNubVue.getInstance();

pubnub.time(function(status, response) {
if (status.error) {
// handle error if something went wrong based on the status object
} else {
console.log(response.timetoken);
}
});

Response

//Example of status
{
error: false,
operation: 'PNTimeOperation',
statusCode: 200
}

//Example of response
{
timetoken: 15031768233407550
}

Other Examples

Basic usage using Promises

import PubNubVue from 'pubnub-vue';

const pubnub = PubNubVue.getInstance();

pubnub.time().then((timetoken) => {
console.log(timetoken);
}).catch((error) => {
console.log(error);
});

Push Notification Configuration

APNS2Configuration

APNS2 configuration type.

Method(s)

type APNS2Configuration = {  collapseId?: string,  expirationDate?: Date,  targets: Array<APNS2Target>}
* required
ParameterDescription
collapseId
Type: String
Notification group / collapse identifier. Value will be used in APNS POST request as apns-collapse-id header value.
expirationDate
Type: Date
Date till which APNS will try to deliver notification to target device. Value will be used in APNS POST request as apns-expiration header value.
targets *
Type: Array< APNS2Target >
List of topics which should receive this notification.

APNSNotificationPayload

APNSNotificationPayload instance provides access to options specific only to mobile push notifications sent with APNs.

Properties

ParameterDescription
configurationsList of HTTP/2-based APNs delivery configurations.
notification
Type: Hash
Hash with parameters which specify user-visible key-value pairs.
payload
Type: Hash
Platform specific notification payload. In addition to data required to make notification visual presentation it can be used to pass additional information which should be sent to remote device.
silent
Type: Boolean
Whether operation system should handle notification layout by default or not. alert, sound and badge will be removed from resulting payload if set to true.

APNS2Target

APNS2 configuration target type.

Method(s)

type APNS2Target = {  topic: string,  environment?: 'development' | 'production',  excludedDevices?: Array<string>}
* required
ParameterDescription
topic *
Type: String
Default:
n/a
Notifications topic name (usually it is bundle identifier of applicationfor Apple platform). Required only if pushGateway set to apns2.
environment
Type: String
Default:
development
Environment within which registered devices to which notifications should be delivered. Available:
  • development
  • production
excludedDevices *
Type: Array
Default:
n/a
List of devices (their push tokens) to which this notification shouldn't be delivered.

FCMNotificationPayload

FCMNotificationPayload instance provides access to options specific only to mobile push notifications sent with FCM.

Properties

ParameterDescription
notification
Type: Hash
Hash with parameters which specify user-visible key-value pairs.
data
Type: Hash
Custom key-value object with additional information which will be passed to device along with displayable notification information. All object and scalar type value should be converted to strings before passing to this object. Keys shouldn't match: from, message_type or start with google or gcm. Also as key can't be used any word defined in this table
silent
Type: Boolean
Whether operation system should handle notification layout by default or not. notification key with it's content will be moved from root level under data key.
icon
Type: String
Icon which should be shown on the left from notification title instead of application icon.
tag
Type: String
Unique notification identifier which can be used to publish update notifications (they will previous notification with same tag).
payload
Type: Hash
Platform specific notification payload. In addition to data required to make notification visual presentation it can be used to pass additional information which should be sent to remote device.

MPNSNotificationPayload

MPNSNotificationPayload instance provides access to options specific only to mobile push notifications sent with MPNS.

Properties

ParameterDescription
backContent
Type: String
Message which should be shown in notification body (text for back tile). 40 characters long to fit into tile.
backTitle
Type: String
Additional information which may explain reason why this notification has been delivered. Maximum 15 characters long.
count
Type: Number
Value between 1-99 which will be shown on the tile.
title
Type: String
Title of the tile.
type
Type: String
Type of notification which should be presented to the user.
payload
Type: Hash
Platform specific notification payload. In addition to data required to make notification visual presentation it can be used to pass additional information which should be sent to remote device.

NotificationsPayload

NotificationsPayload instance provides convenient method and properties which allow to setup notification for multiple platforms without getting into details how they should be formatted.
Builder instance contain additional set of properties which allow to fine tune payloads for particular platforms and even access to RAW payload dictionaries.

Method(s)

ParameterDescription
subtitle
Type: String
Additional information which may explain reason why this notification has been delivered.
badge
Type: Number
Number which should be shown in space designated by platform (for example atop of application icon).
sound
Type: String
Path to file with sound or name of system sound which should be played upon notification receive.
debugging
Type: Boolean
Whether PubNub service should provide debug information about devices which received created notifications payload.
apnsAccess to APNS specific notification builder.
fcmAccess to FCM specific notification builder.
PubNub.notificationPayload(String title, String body)
* required
ParameterDescription
title
Type: String
Short text which should be shown at the top of notification instead of application name.
body
Type: String
Message which should be shown in notification body (under title line).
buildPayload(Array<String> platforms)
* required
ParameterDescription
platforms *
Type: Array
List of platforms for which payload should be added to final dictionary. Available:
  • apns
  • apns2
  • fcm

Basic Usage

Create notification payload builder with pre-defined notification title and body:

let builder = PubNub.notificationPayload('Chat invitation',
'You have been invited to \'quiz\' chat');
let messagePayload = builder.buildPayload(['apns2', 'fcm']);
messagePayload.message = 'Max invited you to \'quiz\' chat room';
messagePayload.roomID = 'ewuiogw9vewg0';

pubnub.publish(
{
message: messagePayload,
channel: 'chat-bot',
},
function (status, response) {
// Handle publish results
}
);
let builder = PubNub.notificationPayload('Chat invitation',
'You have been invited to \'quiz\' chat');

Response

Hash with data, which can be sent with publish method call and trigger remote notifications for specified platforms.

Other Examples

Generate simple notification payload for FCM and APNS

let builder = PubNub.notificationPayload('Chat invitation',
'You have been invited to \'quiz\' chat');
builder.sound = 'default';

console.log(JSON.stringify(builder.buildPayload(['apns', 'fcm']), null, 2));

Output

{
"pn_apns": {
"aps": {
"alert": {
"body": "You have been invited to 'quiz' chat",
"title": "Chat invitation"
},
"sound": "default"
}
},
"pn_fcm": {
"notification": {
"body": "You have been invited to 'quiz' chat",
"title": "Chat invitation"
},
show all 22 lines

Generate simple notification payload for FCM and HTTP/2-based APNs (default configuration)

let builder = PubNub.notificationPayload('Chat invitation',
'You have been invited to \'quiz\' chat');
builder.apns.configurations = [{ targets: [{ topic: 'com.meetings.chat.app' }] }];
builder.sound = 'default';

console.log(JSON.stringify(builder.buildPayload(['apns2', 'fcm']), null, 2));

Output

{
"pn_apns": {
"aps": {
"alert": {
"body": "You have been invited to 'quiz' chat",
"title": "Chat invitation"
},
"sound": "default"
},
"pn_push": [
{
"targets": [
{
"environment": "development",
"topic": "com.meetings.chat.app"
show all 33 lines

Generate simple notification payload for FCM and HTTP/2-based APNs (custom configuration)

let configuration = [
{
collapseId: 'invitations',
expirationDate: new Date(Date.now() + 10000),
targets: [{ topic: 'com.meetings.chat.app' }]
}
];
let builder = PubNub.notificationPayload('Chat invitation',
'You have been invited to \'quiz\' chat');
builder.apns.configurations = [configuration];

console.log(JSON.stringify(builder.buildPayload(['apns2', 'fcm']), null, 2));

Output

{
"pn_apns": {
"aps": {
"alert": {
"body": "Chat invitation",
"title": "You have been invited to 'quiz' chat"
}
},
"pn_push": [
{
"collapse_id": "invitations",
"expiration": "2019-11-28T22:06:09.163Z",
"targets": [
{
"environment": "development",
show all 29 lines

Example above show how to create notification payload which APNS will try to redeliver few times (if devices not active) and give up after 10 seconds since moment when it has been scheduled.

Additionally this invitation notification will be grouped along with other invitation notifications (using provided collapse_id as group identifier) and shown as one in notification center.

Returns

Configured and ready to use NotificationsPayload instance.

Last updated on