OnlineChatSdk 0.1.7

OnlineChatSdk 0.1.7

Blinov Andrey 维护。



  • 作者:
  • bekannax

OnlineChatSdk-Swift

Version License Platform

添加到项目

pod 'OnlineChatSdk'

获取 id

转到“在线聊天 - 您的网站 - 设置 - 安装”部分,并复制 id 变量的值。

使用示例

添加您的 ViewController,并指定其超类为 ChatController

class MyController: ChatController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        load("<Ваш id>", "<Домен вашего сайта>")
    }
}

在加载时,您还可以指定 languageclientIdapiToken

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中有两个静态方法getUnreadedMessagesgetNewMessages

getUnreadedMessages - 返回所有未读消息。

getNewMessages的工作原理类似,但在重复请求时,之前的消息将不再返回。

使用方法之前,需要指定apiToken

ChatController.getUnreadedMessages { data in }
ChatController.getNewMessages { data in }

data的格式与RestApi中/chats/message/getList方法的响应类似。

详细信息请参阅“集成和API - REST API - 连接说明”部分。

许可证

OnlineChatSdk在MIT许可证下可用。有关更多信息,请参阅LICENSE文件。