迁移向导
迁移向导
如果您是从旧版本的Chat SDK (v2之前)迁移过来的,本指南将帮助您突出一些关键差异。
初始化Chat SDK
Chat SDK初始化应该在您的AppDelegate.swift.初始化方法接受以下参数:
- accountKey -这个可以在聊天仪表板上找到。如果您无法访问仪表板,请向聊天管理员索取密钥。
- apiConfig -提供配置聊天的方法。
- thread——要在其上分派操作的线程。默认是主线程。
之前
ZDCChat。初始化(withAccountKey accountKey):
后
闲谈,聊天初始化(accountKey: accountKey, queue: .main)
开始聊天
之前
ZDCChat。开始(:自我。导航控制器,withConfig: config
后
{做
let chatEngine = try chatEngine .engine()
let viewController = try message .instance。buildUI(引擎:[chatEngine],配置:[])
导航控制器?。pushViewController(viewController, animated: true)
} catch {
//处理错误
}
添加访客信息
之前
ZDCChat。updateVisitor{用户在
user?.name = "姓名"
用户?。email = " email地址"
用户?。电话=“电话号码”
}
后
let chatAPIConfiguration = chatAPIConfiguration ()
chatAPIConfiguration。visitorInfo = visitorInfo(名称:“名称”,email:“电子邮件地址”,phoneNumber:“电话号码”)
Chat.instance ?。configuration = chatAPIConfiguration
设置部门
之前
ZDCChat。开始(:自我。navigationController, withConfig: {config in
config?.department = "部门名称"
})
后
let chatAPIConfiguration = chatAPIConfiguration ()
chatapiconfigure . Department = "部门名称"
Chat.instance ?。configuration = chatAPIConfiguration
/ /或
let chatProvider = Chat.chatProvider
chatProvider。setDepartment(“部门名称”)
发送事件
聊天SDK v1允许您通过ZDCChatAPI
实例。在Chat SDK v2中,这些事件通过提供程序下的类似api分组在一起。
提供者 | 描述 |
---|---|
ChatProvider | 用于与聊天会话相关的api。 |
ProfileProvider | 用于与访问者相关的api。 |
PushNotificationsProvider | 用于与Push相关的api。 |
ConnectionProvider | 用于与连接相关的api。 |
SettingsProvider | 用于与聊天仪表板设置相关的api。 |
每个可以发送的事件都可以接受一个可选的完成闭包。闭包提供一个结果> <成功,错误
返回以处理请求的结果。
之前
ZDCChatAPI.instance () .sendChatMessage(消息)
ZDCChatAPI.instance()。uploadFile(with: data, name: fileName)
.endChat ZDCChatAPI.instance () ()
ZDCChatAPI.instance () .setNote(注意)
ZDCChatAPI.instance () .setPushToken(数据)
后
let chatProvider = Chat.chatProvider
//可选的完成处理程序
chatProvider ? .sendMessage(消息)
chatProvider ?。sendFile (url: fileURL,
onProgress: {(progress) in},
补全:{(结果)in}
chatProvider ?。endChat{(结果)在
切换结果{
案例.success:
break //聊天结束
Case .failure(let error):
break //处理错误
}
}
.setNote(note) {_ in}
Chat.pushNotificationsProvider ? .registerPushToken(数据)
观察事件
聊天v1利用NSNotificationCenter来发出事件并处理事件的订阅。Chat v2通过可观察模式实现事件观察器。
订阅事件
之前
ZDCChatAPI.instance()。addObserver(self, forConnectionEvents: #selector(onConnectionStateUpdated))
ZDCChatAPI.instance()。addObserver(self, forChatLogEvents: #selector(chatLogEvents))
ZDCChatAPI.instance()。addObserver(self, forAgentEvents: #selector(onAgentEvent))
ZDCChatAPI.instance()。addObserver(self, forUploadEvents: #selector(chatUploadEvent))
ZDCChatAPI.instance()。addObserver(self, forAccountEvents: #selector(chatAccountEvent))
后
let stateToken = Chat.chatProvider?observeChatState {(state) in
//处理日志、座席事件、队列位置变化等事件
}
let connectionToken = Chat.connectionProvider?observeConnectionState{(连接)在
//处理连接状态变化
}
let accountToken = Chat.chatProvider?observeAccount{帐户在
//处理部门和帐户状态变更
}
let settingsToken = chat . settingprovider ?observeChatSettings{设置
//处理聊天设置的更改
}
var token: [ObservationToken?]] = [stateToken, connectionToken, accountToken, settingsToken]
取消订阅事件
之前
ZDCChatAPI.instance()。removeObserver (forConnectionEvents:自我)
ZDCChatAPI.instance()。removeObserver (forAgentEvents:自我)
ZDCChatAPI.instance()。removeObserver (forChatLogEvents:自我)
ZDCChatAPI.instance()。removeObserver (forUploadEvents:自我)
ZDCChatAPI.instance()。removeObserver (forAccountEvents:自我)
后
令牌。forEach {$0.cancel()}
名称冲突。框架
如果你正在使用CocoaPods,你可能会得到一个“冲突名称commonuisdk.framework”错误,如果你也在使用支持SDK。您可以通过更新Support SDK来解决这个问题。遵循支持SDK迁移指南,并确保您正在使用亚博ZendeskSupportSDK
Pod,而不是被弃用的亚博ZendeskSDK
豆荚。
以机器人为中心的对话体验
聊天SDK利用统一SDK在对话流程中向用户展示聊天功能。预聊天表单、离线表单和客户满意度请求都通过聊天机器人发送给用户。虽然这个机器人很像回答机器人,但它不是。看到配置聊天机器人.