@groupsosimple/nativescript-pubnub
这是一个用于 PubNub SDK 的 NativeScript 插件包装器。它实现了 Android 和 iOS SDK。
npm i --save @groupsosimple/nativescript-pubnub

npm npm

@groupsosimple/nativescript-pubnub

这是一个用于 PubNub SDK 的 NativeScript 插件包装器。它实现了 Android 和 iOS SDK。还提供了一个 Angular 服务。

ns plugin add @groupsosimple/nativescript-pubnub

获取密钥

您需要发布和订阅密钥以验证您的应用程序。从 PubNub 管理门户 获取您的密钥。

导入 PubNub

使用 TypeScript

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

使用 JavaScript

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

配置 PubNub

配置您的密钥

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

添加事件监听器

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
},
});

发布/订阅

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

pubnub.publish('MyChannel', publishPayload, (status) => {
console.log(status);
});

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

使用 Angular 服务

在您的根模块中声明 PubNub Angular 服务

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

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

在组件中注入服务并使用您的密钥进行配置

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

之后,您就可以像平常一样使用该服务了

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

更多信息

更多信息可以在原始 SDK 实现中查看

变更日志

  • 1.0.0 初次发布
  • 1.0.1 Angular 服务和错误修复

许可证

Apache 许可证版本 2.0

作者

感谢