nativescript-live-engage
一个用于显示LivePerson LiveEngage聊天窗口的NativeScript插件
npm i --save nativescript-live-engage

NativeScript LivePerson LiveEngage 插件

npm version

这是一个插件,用于显示LiveEngage聊天的对话,使用LP-Messaging SDK(Android v3.6.0,iOS v3.6.0)。

要求

安装

从项目的根目录运行以下命令

npm install nativescript-live-engage

设置

在您的应用启动时,使用您的凭据调用initializeChat(我们的示例main.ts

LiveEngage.getInstance().initializeChat('12345678', 'com.example.myapp');

Android

  1. 将minSdkVersion设置为至少19,在您的AndroidManifest.xmlapp.gradle中。

  2. 在您的应用的include.gradle文件中包含以下依赖项

      compile "com.android.support:appcompat-v7:24.2.1"
    compile "com.android.support:design:24.2.1"
    compile "com.android.support:percent:24.2.1"
    compile 'com.google.android.gms:play-services-maps:9.8.0'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'

    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'com.neovisionaries:nv-websocket-client:1.31'
    compile 'com.squareup.okhttp3:okhttp:3.6.0'

iOS

您需要启用密钥链共享,为此我们需要一个自定义权限文件,其中包含keychain-access-groups密钥。

nativescript-custom-entitlements添加到您的devDependencies中,并创建一个新的权限文件,如我们的示例app.entitlements

聊天

要打开聊天窗口,请调用showChat

LiveEngage.getInstance().showChat();

可选函数

设置客户信息

添加用户的首字母、姓氏、昵称、头像URL或电话号码。

const chatProfile: ChatProfile = {
firstName: 'Jane',
lastName: 'Doe',
nickName: 'JD',
phone: '0132100000',
avatarUrl: ''
};
LiveEngage.getInstance().setUserProfileValues(chatProfile);

oAuth

在开始对话时添加JWT以支持oAuth。确保您已配置Live Person数据源以支持Live person公钥、签名标识和可能的(自定义)声明定义。确保在开始对话之前调用此方法。

LiveEngage.getInstance().setAuthenticationCode('<JWT encoded token string>');

隐藏聊天

当您想要通过编程隐藏聊天窗口时,请调用closeChat()

LiveEngage.getInstance().closeChat();

注销

当您想要删除所有用户数据并取消注册推送通知时,请调用killChat()

LiveEngage.getInstance().killChat()
.then(() => {
console.log('killChat success');
}).catch((error: any) => {
console.log('killChat error', error);
});

推送通知

当代理发送新消息时,您需要将推送令牌发送给LivePerson。当您有推送令牌(Android的FCM和iOS的APNS)时,您可以使用registerPushToken将其发送给LivePerson。

LiveEngage.getInstance().registerPushToken('your-token');

Android上的消息解析

在Android的FirebaseMessagingService中的onMessageReceived()中解析推送通知消息,请使用parsePushMessage()。这将返回一个具有getMessage()方法的PushMessageParser对象,该方法可以返回推送消息的标题。

try {
const message = LiveEngage.getInstance().parsePushMessage(data);
console.log(message.getMessage());
} catch (e) {
console.error("Failed to parse message:", e);
}

获取未读消息数

要获取未读消息总数,请使用getUnreadMessagesCount()。这仅在启用推送通知时才有效。

LiveEngage.getInstance().getUnreadMessagesCount((count: number) => {
console.log('Unread messages:', count);
}, (error: any) => {
console.log('Failed to get count: ', error);
});

iOS上的关闭窗口回调

要通知当会话被取消时,您可以在iOS上打开聊天时提供一个回调。

LiveEngage.getInstance().showChat(() => {
console.log('Chat window was closed');
});

开发设置

为了更方便地进行开发和调试,请继续以下步骤

打开命令提示符/终端,导航到src文件夹,并运行npm run demo.iosnpm run demo.android以运行演示。

现在更改您的插件。它将自动应用于演示项目。

清理插件和演示文件

有时您可能需要删除所有生成的文件夹以重新安装。运行 npm run clean 删除这些文件夹,然后您就可以运行 plugin.prepare 来安装新的依赖项。

有时您只需删除演示的平台、node_modules 和 hooks 目录即可。运行 npm run demo.reset 删除这些。