@groupsosimple/nativescript-pubnub
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
- Version: 1.0.2
- GitHub: https://github.com/groupsosimple/nativescript-plugins
- NPM: https://www.npmjs.com/package/%40groupsosimple%2Fnativescript-pubnub
- Downloads:
- Last Day: 0
- Last Week: 0
- Last Month: 0
@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.