Nonchalantly Perusing Magazines

    @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.

    Install

    npm i @groupsosimple/nativescript-pubnub

    DownloadsWeekly Downloads

    6

    Version

    1.0.2

    License

    Apache-2.0

    Unpacked Size

    647 kB

    Total Files

    36

    Last publish

    Collaborators

    • groupsosimple