網(wǎng)易七魚React-Native-qiyu使用

簡介

網(wǎng)易七魚 iOS SDK 是客服系統(tǒng)訪客端的解決方案,既包含了客服聊天邏輯管理犀呼,也提供了聊天界面,開發(fā)者可方便的將客服功能集成到自己的 APP 中鬼廓。 本模塊支持 iOS 7 以上晰奖,Android 2.3 以上版本谈撒,同時支持手機、Pad匾南。在iOS 9.2 以上版本中支持 IPv6啃匿,能正常通過蘋果審核。 詳情請前往:http://www.qiyukf.com

安裝與配置

安裝

通過yarn安裝

yarn add react-native-qiyu

即把react-native-qiyu導(dǎo)入到工程中的node_modules文件夾中

配置
iOS

執(zhí)行以下命令:

react-native link react-native-qiyu

自動完成配置
link成功命令行會提示

Linking react-native-qiyu ios dependency

或者你還可以手動配置

a.打開XCode's工程中, 右鍵點擊Libraries文件夾 ? Add Files to <...> 
b.去node_modules ? react-native-qiyu ? ios ? 選擇 RCTQiYu.xcodeproj 
c.在工程Build Phases ? Link Binary With Libraries中添加libRCTQiYu.a
工程配置
在工程target的Build Phases->Link Binary with Libraries中加入
UIKit.framework蛆楞、
CoreText.framework溯乒、
MobileCoreService.framework、
SystemConfiguration.framework豹爹、
AVFoundation.framwork裆悄、
CoreTelephony.framework、
CoreMedia.framework臂聋、
AudioToolbox.framework光稼、
libz.tbd、
libstdc++.6.0.9.tbd孩等、
libsqlite3.0.tbd等依賴庫艾君,
在Build Phases->Copy Bundle Resources下添加QYResource.bundle資源包。
iOS9傳輸安全問題
在iOS9中肄方,默認(rèn)需要為每次網(wǎng)絡(luò)傳輸建立SSL冰垄,解決方法是在應(yīng)用plist文件中設(shè)置
<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key></true>
</dict>
iOS10權(quán)限設(shè)置
* 在Info.plist中加入以下內(nèi)容:
    <key>NSPhotoLibraryUsageDescription</key>
    <string>需要照片權(quán)限</string>
    <key>NSCameraUsageDescription</key>
    <string>需要相機權(quán)限</string>
    <key>NSMicrophoneUsageDescription</key>
    <string>需要麥克風(fēng)權(quán)限</string>

如果不加,會crash权她。

如果在原生代碼中需要引入七魚SDK

在工程target的Build Setting->
Library Search Paths中添加$(SRCROOT)/../node_modules/react-native-qiyu/ios/RCTQiYu虹茶、
在Header Search Paths中添加$(SRCROOT)/../node_modules/react-native-qiyu/ios/RCTQiYu
消息推送
需要在工程的APPDelegate文件中的
(void)application:(UIApplication *)app
                didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
方法中把 APNS Token 傳給 SDK

示例代碼:

- (void)application:(UIApplication *)app
                didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
    ......

    [[QYSDK sharedSDK] updateApnsToken:deviceToken];

    ......
}

具體使用請參考QiYuDemo例子工程

Android

手動配置 編輯android/settings.gradle

// ...

include ':react-native-qiyu'
project(':react-native-qiyu').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-qiyu/android')

編輯android/app/build.gradle

// ...

dependencies {
    // ...
    compile project(':react-native-qiyu')
}

在MainApplication.java中注冊模塊(基于React-Native 0.32+) 編輯android/app/src/main/java/[...]/MainApplication.java

// ...

import com.qiyukf.unicorn.reactnative.QiyuSdkPackage;    // <--- 導(dǎo)包

public class MainApplication extends Application implements ReactApplication {
    // ...

    private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
        // ...

        @Override
        protected List<ReactPackage> getPackages() {
            return Arrays.<ReactPackage>asList(
                new MainReactPackage(),
                new QiyuSdkPackage("七魚管理后臺的appKey", "七魚管理后臺的App名稱")    // <--- 添加package
            );
        }

        // ...
    };

    // ...
}

如果你使用的React-Native版本中不包含MainApplication.java,則可能需要在MainActivity.java中注冊模塊隅要,方法同上写烤。

Method
  • registerAppId
  • openServiceWindow
  • setCustomUIConfig
  • setUrlClickWithEventName
  • setUnreadCountWithEventName
  • getUnreadCountCallback
  • setUserInfo
  • logout
方法接口描述

registerAppId 注冊七魚SDK

registerAppId(appKey, appName)

params

參數(shù)名 類型 默認(rèn)值 描述
appKey 字符串類型 七魚管理后臺的appKey
appName 字符串類型 七魚管理后臺的App名稱

示例代碼

import QiYu from 'react-native-qiyu';
QiYu.registerAppId('七魚管理后臺的appKey', '七魚管理后臺的App名稱');

注意事項

建議在應(yīng)用啟動時初始化,初始化之前無法使用此模塊的其他方法拾徙。七魚模塊只需要初始化一次洲炊。代碼如下

componentWillMount() {
    QiYu.registerAppId('七魚管理后臺的appKey', '七魚管理后臺的App名稱');
}

openServiceWindow 啟動客服聊天窗口

openServiceWindow(params)

params

參數(shù)名 類型 默認(rèn)值 描述
source JSON對象 會話窗口來源
sourceTitle 字符串類型 會話窗口來源標(biāo)題
sourceUrl 字符串類型 會話窗口來源URL
sourceCustomInfo 字符串類型 會話窗口來源自定義消息
commodityInfo JSON對象 商品詳情信息
commodityInfoTitle 字符串類型 商品詳情信息展示商品標(biāo)題,字符數(shù)要求小于100
commodityInfoDesc 字符串類型 商品詳情信息展示商品描述尼啡,字符數(shù)要求小于300
pictureUrl 字符串類型 商品詳情信息展示商品圖片URL暂衡,字符數(shù)要求小于1000
commodityInfoUrl 字符串類型 商品詳情信息展示跳轉(zhuǎn)URL,字符數(shù)要求小于1000
note 字符串類型 商品詳情信息展示備注信息崖瞭,可以顯示價格狂巢、訂單號等,字符數(shù)要求小于100
show 布爾類型 false 商品詳情信息展示發(fā)送時是否要在用戶端顯示书聚,默認(rèn)不顯示
sessionTitle 字符串類型 客服會話窗口標(biāo)題
staffId long類型 指定客服id唧领,如果同時指定 staffId 和 groupId藻雌,以 staffId 為準(zhǔn),忽略 groupId
groupId long類型 指定客服分組id斩个,如果同時指定 staffId 和 groupId胯杭,以 staffId 為準(zhǔn)上遥,忽略 groupId

示例代碼

import QiYu from 'react-native-qiyu';
var params = {
    source:{
        sourceTitle:'網(wǎng)易七魚ReactNative',
        sourceUrl:'http://www.qiyukf.com',
        sourceCustomInfo:'我是來自自定義的信息'
    },
    commodityInfo:{
        commodityInfoTitle:'ReactNative商品',
        commodityInfoDesc:'這是來自網(wǎng)易七魚ReactNative的商品描述',
        pictureUrl:'http://qiyukf.com/res/img/companyLogo/blmn.png',
        commodityInfoUrl:'http://www.qiyukf.com',
        note:'¥1000',
        show:true
    },
    sessionTitle:'網(wǎng)易七魚',
    groupId:0,
    staffId:0
}
QiYu.openServiceWindow(params);

setCustomUIConfig 自定義客服聊天窗口UI

setCustomUIConfig(params)

params

參數(shù)名 類型 默認(rèn)值 描述
sessionTipTextColor 字符串類型铭段,如'#CC00FF' 會話窗口上方提示條中的文本字體顏色
sessionTipTextFontSize int類型租漂,如15 會話窗口上方提示條中的文本字體大小
customMessageTextColor 字符串類型吕嘀,如'#CC00FF' 訪客文本消息字體顏色
serviceMessageTextColor 字符串類型,如'#CC00FF' 客服文本消息字體顏色
messageTextFontSize int類型捆昏,如15 消息文本消息字體大小
tipMessageTextColor 字符串類型米诉,如'#CC00FF' 提示文本消息字體顏色
tipMessageTextFontSize int類型肛著,如15 提示文本消息字體大小
inputTextColor 字符串類型藤肢,如'#CC00FF' 輸入框文本字體顏色
inputTextFontSize int類型太闺,如15 輸入框文本字體大小
sessionBackgroundImage [*]字符串類型,傳入圖片的絕對路徑嘁圈,如'./qiyu/session_bg.png' 客服聊天窗口背景圖片
sessionTipBackgroundColor 字符串類型跟束,如'#CC00FF' 會話窗口上方提示條的背景顏色
customerHeadImage [*]字符串類型,傳入圖片的絕對路徑 訪客頭像
serviceHeadImage [*]字符串類型丑孩,傳入圖片的絕對路徑 客服頭像
sessionMessageSpacing float類型,如3.5 消息豎直方向間距
showHeadImage 布爾類型 true 是否顯示頭像
showAudioEntry 布爾類型 true 是否顯示發(fā)送語音入口灭贷,設(shè)置為false温学,可以修改為隱藏
showEmoticonEntry 布爾類型 true 是否顯示發(fā)送表情入口,設(shè)置為false甚疟,可以修改為隱藏
autoShowKeyboard 布爾類型 true 進(jìn)入聊天界面仗岖,是文本輸入模式的話,會彈出鍵盤览妖,設(shè)置為false轧拄,可以修改為不彈出
  • 注意

為了防止 react-native 在打包時將用于七魚的圖片文件過濾掉,我們需要將用于七魚的圖片文件添加引用讽膏,如
var session_bg = require('./qiyu/session_bg.png')

建議將七魚使用的圖片單獨放在一個文件夾下檩电,如qiyu。

示例代碼

import QiYu from 'react-native-qiyu';
var params = {
    sessionTipTextColor:'#CC00FF',
    sessionTipTextFontSize:20,
    customMessageTextColor:'#CC00FF',
    serviceMessageTextColor:'#CC00FF',
    messageTextFontSize:20,
    tipMessageTextColor:'#CC00FF',
    tipMessageTextFontSize:20,
    inputTextColor:'#CC00FF',
    inputTextFontSize:20,
    sessionBackgroundImage:'session_bg',
    sessionTipBackgroundColor:'#000000',
    customerHeadImage:'customer_head',
    serviceHeadImage:'service_head',
    sessionMessageSpacing:2,
    showHeadImage:true,
    showAudioEntry:false,
    showEmoticonEntry:false,
    autoShowKeyboard:false
}
QiYu.setCustomUIConfig(params);

setUrlClickWithEventName 用于設(shè)置聊天窗口中的事件處理

setUrlClickWithEventName(eventName)

params

參數(shù)名 類型 默認(rèn)值 描述
eventName 字符串類型 指定一個事件名稱府树,指定DeviceEventEmitter.addListener后會進(jìn)行事件監(jiān)聽
e Event對象 事件回調(diào)返回數(shù)據(jù)俐末,返回'url'字段,為鏈接地址字符串

示例代碼

import QiYu from 'react-native-qiyu';
QiYu.setUrlClickWithEventName(eventName);
DeviceEventEmitter.addListener(eventName, function(e: Event) {
    console.log(e.url);
});

setUnreadCountWithEventName 用于設(shè)置會話管理奄侠,使得未讀數(shù)改變的時候會回調(diào)

setUnreadCountWithEventName(eventName)

參數(shù)名 類型 默認(rèn)值 描述
eventName 字符串類型 指定一個事件名稱卓箫,指定DeviceEventEmitter.addListener后會進(jìn)行事件監(jiān)聽
e Event對象 事件回調(diào)返回數(shù)據(jù),返回'unreadCount'字段垄潮,為未讀數(shù)字符串

示例代碼

import QiYu from 'react-native-qiyu';
QiYu.setUnreadCountWithEventName(UnreadCountCallback);
DeviceEventEmitter.addListener(UnreadCountCallback, function(e: Event) {
    console.log(e.unreadCount);
});

getUnreadCountCallback 得到會話未讀數(shù)烹卒,主動獲取

getUnreadCountCallback(callback(unreadCount))

params

參數(shù)名 類型 默認(rèn)值 描述
unreadCount 字符串類型 返回未讀消息數(shù)

示例代碼

import QiYu from 'react-native-qiyu';
QiYu.getUnreadCountCallback((unreadCount)=>{
    console.log(unreadCount);
});

setUserInfo 用于設(shè)置CRM個人信息

setUserInfo(params)

params

參數(shù)名 類型 默認(rèn)值 描述
userId 字符串類型 個人賬號Id
data 字符串類型 用戶詳細(xì)信息json

示例代碼

import QiYu from 'react-native-qiyu';
var params = {
    userId:'uid10101010',
    data:'[{\"key\":\"real_name\", \"value\":\"土豪\"},{\"key\":\"mobile_phone\", \"hidden\":true},{\"key\":\"email\", \"value\":\"13800000000@163.com\"},{\"index\":0, \"key\":\"account\", \"label\":\"賬號\", \"value\":\"zhangsan\", \"href\":\"http://example.domain/user/zhangsan\"},{\"index\":1, \"key\":\"sex\", \"label\":\"性別\", \"value\":\"先生\"},{\"index\":5, \"key\":\"reg_date\", \"label\":\"注冊日期\", \"value\":\"2015-11-16\"},{\"index\":6, \"key\":\"last_login\", \"label\":\"上次登錄時間\", \"value\":\"2015-12-22 15:38:54\"}]'
}
QiYu.setUserInfo(params);

logout 注銷當(dāng)前賬號

logout()

示例代碼

import QiYu from 'react-native-qiyu';
QiYu.logout();

此文轉(zhuǎn)自網(wǎng)易七魚官方GitHub:https://github.com/qiyukf/react-native-qiyu

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末闷盔,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子旅急,更是在濱河造成了極大的恐慌逢勾,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件坠非,死亡現(xiàn)場離奇詭異敏沉,居然都是意外死亡,警方通過查閱死者的電腦和手機炎码,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進(jìn)店門盟迟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人潦闲,你說我怎么就攤上這事攒菠。” “怎么了歉闰?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵辖众,是天一觀的道長。 經(jīng)常有香客問我和敬,道長凹炸,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任昼弟,我火速辦了婚禮啤它,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘舱痘。我一直安慰自己变骡,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布芭逝。 她就那樣靜靜地躺著塌碌,像睡著了一般。 火紅的嫁衣襯著肌膚如雪旬盯。 梳的紋絲不亂的頭發(fā)上台妆,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天,我揣著相機與錄音胖翰,去河邊找鬼频丘。 笑死,一個胖子當(dāng)著我的面吹牛泡态,可吹牛的內(nèi)容都是我干的搂漠。 我是一名探鬼主播,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼某弦,長吁一口氣:“原來是場噩夢啊……” “哼桐汤!你這毒婦竟也來了而克?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤怔毛,失蹤者是張志新(化名)和其女友劉穎员萍,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拣度,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡碎绎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了抗果。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片筋帖。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖冤馏,靈堂內(nèi)的尸體忽然破棺而出日麸,到底是詐尸還是另有隱情,我是刑警寧澤逮光,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布代箭,位于F島的核電站,受9級特大地震影響涕刚,放射性物質(zhì)發(fā)生泄漏嗡综。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一杜漠、第九天 我趴在偏房一處隱蔽的房頂上張望极景。 院中可真熱鬧,春花似錦碑幅、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至异吻,卻和暖如春裹赴,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背诀浪。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工棋返, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人雷猪。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓睛竣,卻偏偏與公主長得像,于是被迫代替她去往敵國和親求摇。 傳聞我的和親對象是個殘疾皇子射沟,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,914評論 2 355

推薦閱讀更多精彩內(nèi)容