OnlineChatSdk-Swift
添加到项目
pod 'OnlineChatSdk'
获取 id
转到“在线聊天 - 您的网站 - 设置 - 安装”部分,并复制 id 变量的值。
使用示例
添加您的 ViewController
,并指定其超类为 ChatController
。
class MyController: ChatController {
override func viewDidLoad() {
super.viewDidLoad()
load("<Ваш id>", "<Домен вашего сайта>")
}
}
在加载时,您还可以指定 language
、clientId
和 apiToken
。
load(
"<Ваш id>",
"<Домен вашего сайта>",
"en",
"newClientId",
"<Токен для доступа к Rest Api>",
"showCloseButton"
)
事件
- operatorSendMessage - 操作员向访客发送了消息。
- clientSendMessage - 访客向操作员发送了消息。
- clientMakeSubscribe - 访客填写了表单。
- contactsUpdated - 访客更新了自己的信息。
- sendRate - 访客发送了新的评论。
- clientId - 访客的唯一标识符。
每种事件都有专门的处理器。
override func onOperatorSendMessage(_ data: NSDictionary) {
}
override func onClientSendMessage(_ data: NSDictionary) {
}
override func onClientMakeSubscribe(_ data: NSDictionary) {
}
override func onContactsUpdated(_ data: NSDictionary) {
}
override func onSendRate(_ data: NSDictionary) {
}
override func onClientId(_ clientId: String) {
}
或者可以为所有事件指定一个统一的处理器。
override func onEvent(_ name: String, _ data: NSDictionary) {
switch name {
case ChatController.event_operatorSendMessage:
break
case ChatController.event_clientSendMessage:
break
case ChatController.event_clientMakeSubscribe:
break
case ChatController.event_contactsUpdated:
break
case ChatController.event_sendRate:
break
case ChatController.event_clientId:
break
case ChatController.method_getContacts:
break
default:
break
}
}
方法
- setClientInfo - 修改访客信息。
- setTarget - 将访客标记为目标。
- openReviewsTab - 显示评论表单。
- openTab - 显示所需的标签页。
- sendMessage - 作为客户发送消息。
- receiveMessage - 作为操作员发送消息。
- setOperator - 选择任何操作员。
- getContacts - 获取联系信息。
callJsSetClientInfo("{name: \"Имя\", email: \"[email protected]\"}")
callJsSetTarget("reason")
callJsOpenReviewsTab()
callJsOpenTab(1)
callJsSendMessage("Здравствуйте! У меня серьёзная проблема!")
callJsReceiveMessage("Мы уже спешим на помощь ;)", "", 2000)
callJsSetOperator("Логин оператора")
callJsGetContacts() // результат прилетает в getContactsCallback
override func getContactsCallback(_ data: NSDictionary) {
}
详细信息请参阅“集成和API - Javascript API”部分。
获取token
转到“集成和API - REST API”,复制现有的token或添加新的token。
获取操作员的新消息
为获取新消息,在ChatController
中有两个静态方法getUnreadedMessages
和getNewMessages
。
getUnreadedMessages - 返回所有未读消息。
getNewMessages的工作原理类似,但在重复请求时,之前的消息将不再返回。
使用方法之前,需要指定apiToken
。
ChatController.getUnreadedMessages { data in }
ChatController.getNewMessages { data in }
data
的格式与RestApi中/chats/message/getList方法的响应类似。
详细信息请参阅“集成和API - REST API - 连接说明”部分。
许可证
OnlineChatSdk在MIT许可证下可用。有关更多信息,请参阅LICENSE文件。