by groupsosimple | v1.0.2
This is a Nativescript plugin wraper for the PubNub SDK. It has implementations for both Android and iOS SDKs.
npm i --save @groupsosimple/nativescript-pubnub

npm npm


This is a NativeScript plugin wraper for the PubNub SDK. It has implementations for both Android and iOS SDKs. An Angular service is also provided.

ns plugin add @groupsosimple/nativescript-pubnub

Get keys

You will need the publish and subscribe keys to authenticate your app. Get your keys from the PubNub Admin Portal.

Import PubNub

Using TypeScript

import { PubNub } from '@groupsosimple/nativescript-pubnub';

Using JavaScript

var pubnub = require('@groupsosimple/nativescript-pubnub');

Configure PubNub

Configure your keys:

pubnub = new PubNub({
publishKey: 'myPublishKey',
subscribeKey: 'mySubscribeKey',
uuid: 'myUniqueUUID',
pubnub = new PubNub().configuration({
publishKey: 'myPublishKey',
subscribeKey: 'mySubscribeKey',
uuid: 'myUniqueUUID',

Add event listeners

message: function (m) {
// handle messages
presence: function (p) {
// handle presence
signal: function (s) {
// handle signals
messageAction: function (ma) {
// handle message actions
file: function (event) {
// handle files
status: function (s) {
// handle status


var publishPayload = {
title: 'greeting',
description: 'This is my first message!',

pubnub.publish('MyChannel', publishPayload, (status) => {

pubnub.subscribe(['MyChannel'], true);

Using the Angular Service

Declare the PubNub Angular Service in your root module

import { PubNubService } from '@groupsosimple/nativescript-pubnub/angular';

imports: [...],
declarations: [...],
schemas: [...],
providers: [PubNubService],

Inject the service in a component and configure the with your keys

export class MainComponent {
constructor(private pubnubService: PubNubService) {
publishKey: 'myPublishKey',
subscribeKey: 'mySubscribeKey',
uuid: 'myUniqueUUID',

After that, you can use the service normally

export class SomeComponent {
constructor(private pubnubService: PubNubService) {
pubnubService.subscribe(['MyChannel'], true);

PubNub Api

constructor(config?: PNConfiguration);
configuration(config: PNConfiguration): PubNub;
subscribe(channels: string[], withPresence: boolean): void;
subscribeToChannelGroups(groups: string[], withPresence: boolean): void;
unsubscribe(channels: string[]): void;
unsubscribeFromAll(): void;
unsubscribeFromChannelGroups(groups: string[]): void;
publish(channel: string, message: Object, responseListener: (status: PNStatus) => void): void;
addEventListener(event: PNEventListener): void;
destroy(): void;

More Information

More information can be seen in the original SDK implementation


  • 1.0.0 Initial release
  • 1.0.1 Angular service and bug fixes


Apache License Version 2.0



  • Thanks for rickybrown, the developer of ns-pubnub, where some of the iOS implementation was based on.