WebimClientLibrary 3.14.2

WebimClientLibrary 3.14.2

测试已测试
语言语言 SwiftSwift
授权 MIT
发布上次发布2018年3月
SPM支持 SPM

Nikita Lazarev-Zubov维护。



  • Webim.ru Ltd.

这个库提供了 Webim SDK for iOS

安装

WebimClientLibrary 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile

pod 'WebimClientLibrary', :git => 'https://github.com/webim/webim-client-sdk-ios.git', :tag => '3.0.0'

以前的 Objective-C 版本(2.x.x 版本号)可以通过 version2 分支访问。

如果您已经使用以前的版本并且不打算升级到新版本,您不需要更新您的 Podfile,版本号 2.7.0 及以下的依赖将正常工作。但是,对于所有以前版本的更新使用,您必须将依赖切换到 version2 分支。

示例

要运行示例项目,克隆仓库并在 Example 目录中首先运行 pod install

如果您还没有安装 CocoaPods,您应该首先运行 sudo gem install cocoapods

除了 CocoaPods 之外,您还应该安装 Amimono CocoaPods 插件。如果您还没有安装,只需运行 sudo gem install cocoapods-amimono

目前这个例子不是一个完全工作的应用程序,但它给出了 SDK 逻辑的概念,并指导开发者为正确使用提供的类和方法。

用法

会话

SDK 功能使用从创建会话对象开始。

Webim 类的 newSessionBuilder() 方法返回会话构建器对象(类 SessionBuilder)(这两个类及其方法都在 Webim.swift 文件中进行了描述)。然后需要在创建的 SessionBuilder 对象上调用设置会话参数的方法。在设置所有必要的参数后,应调用 build() 方法。此方法返回 WebimSession 对象。

典型用法示例

let webimSession = try Webim.newSessionBuilder().set(accountName: "ACCOUNT_NAME").set(location: "LOCATION_NAME").build()

Webim.swift 文件中描述了创建会话时可以设置的所有参数以及可以抛出的所有错误。账户名称和位置是其中必需的。

会话创建后,它必须通过 resume() 方法启动(因为会话对象最初是暂停的)。

根据需要,会话可以被暂停(pause() 方法)和恢复(resume() 方法),也可以销毁(destroy() 方法)。所有这些方法都在 WebimSession.swift 文件中进行了描述。

消息流

所有消息流方法都在 MessageStream.swift 文件中进行了描述。

为了使用这些方法,必须通过 getStream() 方法从 WebimSession 类对象获得 MessageStream 类对象。

方法示例
send(message:) - 发送消息,
rateOperatorWith(id:,byRating:) - 评分操作员,
closeChat() - 关闭聊天。

消息跟踪器

new(messageTracker:) 方法通过 MessageStream 对象创建 MessageTracker 对象,该对象可用于在应用内部控制消息流。

例如,getNextMessages(byLimit:,completion:) 方法请求历史中的一定数量的消息。

方法描述可以在 MessageTracker.swift 文件中找到。

MessageListener

MessageListener 协议描述了帮助跟踪消息流中变化的函数。一个应用必须有一个实现该协议方法的类:added(message:,after:)(当消息被添加时自动调用),removed(message:)(当消息被删除时自动调用),removedAllMessages()(当所有消息被删除时自动调用),changed(message:,to:)(当消息被修改时自动调用)。

完整的方法描述可以在 MessageListener.swift 文件中找到。

Message

MessageListener 协议的方法操作的是 Message 类对象,该类对象在 Message.swift 文件中有详细描述。

可以通过 Message 类对象的方法获取关于特定消息的所有必要信息:唯一的消息编号(getID() 方法),消息文本(getText() 方法),附加文件信息(getAttachment() 方法)等。

所有相关的工具(处理附件、消息类型等的方法)也在 Message.swift 文件中有详细描述。

额外功能

描述特定操作员信息的方法可以在 Operator.swift 文件中找到。Operator 对象可以通过 MessageStream 对象的 getCurrentOperator() 方法获取。

通过 WebimPushNotification.swift 文件描述了使用 Webim服务处理远程通知的方法。

可以通过 Webim 类的 parse(remoteNotification:) 方法获取特定的远程通知对象。此类还有一个 isWebim(remoteNotification:) 方法,可以用来简单地识别通知是否由Webim 服务发送。

FatalErrorHandler.swift 包含 FatalErrorHandler 协议的描述。该协议的方法可以被应用实现以跟踪在执行过程中可能出现的错误。所有类型的特定错误都在同一文件中进行了描述。

MessageStream.swift 还包含附加协议的描述,可以由应用类实现以跟踪不同的特定变化。例如,ChatStateListener 协议的方法在聊天状态变化时被调用(所有具体的聊天状态都在同一文件中进行了描述)。

结论

上述描述的实体和方法都是在应用中使用 Webim 服务所必需的。

本手册中描述的功能并非全部现有功能,因此在实现必要的最小功能后,建议查阅 SDK 公开文件中列出的完整协议和方法列表。

所有公共接口、类和方法都在 10 个文件(按字母顺序)中进行了描述

  • FatalErrorHandler.swift,
  • Message.swift,
  • MessageListener.swift,
  • MessageStream.swift,
  • MessageTracker.swift,
  • Operator.swift,
  • Webim.swift,
  • WebimError.swift,
  • WebimPushNotification.swift,
  • WebimSession.swift.

由于所有这些都有在 SDK 公开文件中的详尽描述,因此无需在本手册中对每个类、协议、方法等进行说明。

更多信息

WebimClientLibrary 使用 SQLite.swift。无需在 Podfile 中添加适当的依赖项。

为了简化多个功能实现,示例应用使用了以下功能

  • Cosmos – 用于可视实现操作员评级机制。
  • PopupDialog – 用于实现弹出对话框。
  • SnapKit – 用于在代码中实现自动布局机制。
  • SlackTextViewController – 用于在 Table View 中显示聊天流。
  • Timberjack – 用于记录发出的网络请求和相关服务器响应。

授权

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