@nstudio/nativescript-freshchat
NativeScript 的 Freshchat SDK
npm i --save @nstudio/nativescript-freshchat

@nstudio/nativescript-freshchat

npm install @nstudio/nativescript-freshchat

参考

ios SDK: https://support.freshchat.com/en/support/solutions/articles/50000000048-freshchat-ios-sdk-integration-steps android sdk: https://support.freshchat.com/en/support/solutions/articles/50000000207-freshchat-android-sdk-integration-steps

使用方法

第一步是调用 init 方法,我建议尽可能早地在您的应用生命周期中调用它。

import { FreshChatSDK } from '@nstudio/nativescript-freshchat';
let appID = 'YOURAPPID';
let appKey = 'YOURAPPKEY';
let domain = 'YOURDOMAIN.com'
FreshChatSDK.init(appID, appKey, domain);

然后,您可以使用以下方法与 Freshchat SDK 进行交互

setUser

您可以在任何时刻获取基本用户信息,以便在您的支持代表与用户互相发送消息时提供更多上下文。

let user = FreshChatSDK.setUser({
firstName: 'Dave',
lastName: 'Coffin',
email: '[email protected]',
phoneCountryCode: '1',
phoneNumber: '2075762034'
})
if (user) alert('Freshchat user set!')

setUserProperties

您可以捕获并发送有关用户和应用程序事件的额外元数据,所有这些也可以成为将用户细分以便稍后向他们推送消息的方式。

let setProps = FreshChatSDK.setUserProperties({
old: true,
isCool: false
})
if (setProps) alert('set user properties!')

trackEvent

跟踪用户事件将为您提供有关应用程序中用户(们)的更多洞察和上下文。可以使用此 API 跟踪用户操作和故障/错误情况。跟踪的事件列在代表端的“事件时间线”下。

FreshChatSDK.trackEvent('tookPicture', {
time: new Date(),
foo: 'bar'
})

resetUser

通过调用 resetUser API 在注销或根据用户在应用程序中的操作认为适当的情况下重置用户数据。可选地接受一个完成回调。

FreshChatSDK.resetUser(() => {
console.log('user reset!');
})

showConversations

此方法将显示用户的对话。您可以可选地传递一个主题数组。可以使用标签来过滤主题,向不同类型的用户或在不同的屏幕上显示不同的主题集。

let tags;
tags = ['foo', 'bar'];
FreshChatSDK.showConversations(tags);

identifyUser

使用此方法设置外部 ID 并使用之前检索的恢复 ID 恢复用户的对话。首先,您必须设置用户的外部 ID(系统中的唯一 ID)。

let identified = FreshChatSDK.identifyUser('1234', null)

identifyUser 方法接受外部 ID 和恢复 ID。第一次调用它时,您不会有恢复 ID,但使用外部 ID 和 null 作为恢复 ID 来识别用户将生成用户的恢复 ID。您可以通过... 获取此恢复 ID。

getRestoreID

这将返回用户的恢复 ID。

let restoreID = FreshChatSDK.getRestoreID();
this.myService.saveUserRestoreID(restoreID).then(profit); // save the ID in your database or backend system.

将此 ID 存储在您的系统中,然后当该用户更换设备或平台(例如在网络上访问您的应用程序)时,您可以通过再次调用带有恢复 ID 的 identifyUser 来恢复用户的对话。

this.myService.getUserRestoreIDFromMyCoolBackend('1234').subscribe(restoreID => {
FreshChatSDK.identifyUser('1234', restoreID);
})

sendMessage

应用程序可以使用 sendMessage: API 代表用户发送消息。它将静默发送消息而不会启动 Freshchat SDK UI。此 API 在开始对话之前为顾客提供更多上下文时很有帮助。可选地传递单个标签。

let msg = 'How do I win at chess?';
FreshChatSDK.sendMessage(msg, 'foo')
this.showConversations();

注意:如果没有匹配的主题,消息将发送到默认主题。如果有多个匹配的主题,消息将发送到最旧的主题。

getUnreadCount

如果您想向用户表明他们在收件箱中有未读消息,您可以检索未读计数来显示。该方法返回一个 int,表示用户的未读消息数量。

FreshChatSDK.getUnreadCount((count) => {
alert('Count is ' + count);
})

showFAQs

在任何时候显示 Freshchat 的 FAQ 浮层,请使用 showFAQs() API。

FreshChatSDK.showFAQs({
showContactUsOnAppBar: true,
showFaqCategoriesAsGrid: true,
filterByTags: {
tags: ['foo', 'bar'],
title: 'My_Tags',
type: 'ARTICLE'
}
});

此方法接受一个具有以下定义的配置对象

export interface FreshchatFAQOptions {
showFaqCategoriesAsGrid?: boolean // Show FAQ in grid formal, false to list view
showContactUsOnFaqScreens?: boolean // Show chat option from FAQ section
showContactUsOnFaqNotHelpful?: boolean // Show contact us in article detail when user select Not Helpful
showContactUsOnAppBar?: boolean // Show chat option over navigation bar in FAQ category view or article list view
filterByTags?: {
tags: Array<any>
title: string
type: 'ARTICLE'|'CATEGORY'
}
filterContactUsByTags?: {
tags: Array<any>
title: string
}
}

许可证

Apache 许可协议版本 2.0