@groupsosimple/nativescript-pubnub
TypeScript icon, indicating that this package has built-in type declarations

1.0.2 • Public • Published

npm npm

@groupsosimple/nativescript-pubnub

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',
});
//or
pubnub = new PubNub().configuration({
	publishKey: 'myPublishKey',
	subscribeKey: 'mySubscribeKey',
	uuid: 'myUniqueUUID',
});

Add event listeners

pubnub.addListener({
	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
	},
});

Publish/subscribe

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

pubnub.publish('MyChannel', publishPayload, (status) => {
	console.log(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';

@NgModule({
	imports: [...],
	declarations: [...],
	schemas: [...],
	providers: [PubNubService],
})

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

@Component()
export class MainComponent {
	constructor(private pubnubService: PubNubService) {
		pubnubService.configuration({
			publishKey: 'myPublishKey',
			subscribeKey: 'mySubscribeKey',
			uuid: 'myUniqueUUID',
		});
	}
}

After that, you can use the service normally

@Component()
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

Changelog

  • 1.0.0 Initial release
  • 1.0.1 Angular service and bug fixes

License

Apache License Version 2.0

Authors

Appreciation

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

Package Sidebar

Install

npm i @groupsosimple/nativescript-pubnub

Weekly Downloads

1

Version

1.0.2

License

Apache-2.0

Unpacked Size

647 kB

Total Files

36

Last publish

Collaborators

  • groupsosimple