WebimClientLibrary
此库提供Webim SDK for iOS – 将 Webim 服务集成到您的 iOS 应用程序中的方法。
支持的最低 Webim 服务器版本 – 10.5.30。
安装
支持的最低 iOS 版本 – 9.0。
CocoaPods
在您的 Podfile 中为您的目标添加以下行
pod 'WebimClientLibrary', :git => 'https://github.com/webim/webim-client-sdk-ios.git', :tag => '3.40.0'
必须指定 use_frameworks!
。
Carthage
将以下行添加到您的 Cartfile
github "webim/webim-client-sdk-ios" ~> 3.40.0
Swift Package Manager
- 选择文件 > Swift 包 > 添加包依赖项。在“选择包存储库”对话框中输入
https://github.com/webim/webim-client-sdk-ios
- 在下一页中,指定版本解析规则为“直到下一个主要版本”,使用最新的
webim-client-sdk-ios
发布版本。 - 在 Xcode 检查出了源代码并解析了版本后,您可以选择“WebimClientLibrary”库并将其添加到您的应用程序目标。
其他注意事项
Objective-C
尝试将 WebimClientLibrary 集成到您的 Objective-C 代码中?请使用我们的 WebimClientLibraryWrapper。
上一个版本
前一个 Objective-C 版本(版本号 2.x.x)可以从 version2 分支访问。
发布说明
- 应用重装后删除旧 Keychain 数据。
- 从配置中检查回复和编辑消息的能力。
示例
如果您尚未安装 CocoaPods,您应该首先运行 sudo gem install cocoapods
。
要运行示例项目,首先克隆存储库,然后从 示例 目录中运行 pod install
。
用法
会话
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
所有消息流方法都在 MessageStream.swift 文件中给出。
要使用这些方法,需要通过 WebimSession
类对象调用 getStream()
方法来获取 MessageStream
对象。
方法示例:send(message:)
- 发送消息,rateOperatorWith(id:byRating:)
- 评价操作员,closeChat()
- 关闭会话。
MessageTracker
MessageStream
对象通过 newMessageTracker(messageListener:)
方法创建 MessageTracker
对象,它可以用来在应用程序中控制消息流。
例如,使用 getNextMessages(byLimit:completion:)
方法请求从历史记录中获取一定数量的消息。
方法说明可以在 MessageTracker.swift 文件中找到。
MessageListener
MessageListener
协议描述了可以帮助跟踪消息流变化的方法。应用程序必须有一个实现该协议方法的类:added(message:after:)
、removed(message:)
、removedAllMessages()
、changed(message:to:)
。当新消息被添加、消息被删除、所有消息被删除以及消息被更改时,分别自动调用这些方法。
完整的方法说明可以在 MessageListener.swift 文件中找到。
消息
MessageListener
协议方法操作 Message
对象,该对象在 Message.swift 文件中进行描述。
可以通过 Message
对象的方法获取特定消息的所有必要信息:唯一的消息编号(getID()
方法)、消息文本(getText()
方法)、附加文件信息(getAttachment()
方法)等。
所有相关的工具(处理附件、消息类型等的函数)也在 Message.swift 文件中进行了描述。
附加功能
获取特定操作员信息的方法在 Operator.swift 文件中进行了描述。操作员对象可以通过 MessageStream
对象的 getCurrentOperator()
方法获取。
通过 Webim 服务的远程通知的处理方法在 WebimRemoteNotification.swift 文件中进行了描述。
可以通过 Webim
类的 parse(remoteNotification:)
方法获取特定的远程通知对象。该类还有一个 isWebim(remoteNotification:)
方法,可以用来简单地发现通知是否由 Webim 服务发送。
FatalErrorHandler.swift 包含了 FatalErrorHandler
协议的描述。应用程序可以通过实现这些方法来自定义跟踪可能出现的错误。所有种类的特定错误都在同一文件中进行了描述。
MessageStream.swift 还包含其他协议的描述,这些协议可以由应用程序类实现以跟踪不同的特定变化。例如,当聊天状态改变时,会调用 ChatStateListener
协议的方法(所有特定的聊天状态都描述在同一文件中)。
远程通知
为了启用远程通知,您应该将您的应用程序证书/私钥发送给我们。有关更多信息,请联系我们的支持!
为了使iOS能够自动处理远程通知,您的应用程序必须了解可能的远程通知类型和参数。
可能的 loc-key
值
P.CR
表示操作员发送了联系信息请求。P.OA
表示操作员接受了聊天。P.OF
表示操作员发送了一个文件。P.OM
表示操作员发送了一条文本消息。P.WM
表示操作员发送了一个小部件消息(为了支持此功能,应联系 Webim 支持)。
此类型使用的 loc-args
值
P.CR
:为空。P.OA
:操作员姓名。P.OF
:操作员姓名,文件名。P.OM
:操作员姓名,消息文本。P.WM
:为空。
使用字符串本地化文件示例处理远程通知
"P.OM" = "Message from %@ is received: %@."
结论
上述描述的实体和方法涵盖了在 APP 中使用 Webim 服务的所有必要操作,甚至更多。
本手册中描述的功能并非全部现有功能,因此建议在实现必要的最小功能后,熟悉 SDK 公共文件中列出的完整协议和方法列表。
所有公共接口、类和方法均在文件内部描述(按字母顺序)
- Department.swift,
- FatalErrorHandler.swift,
- Message.swift,
- MessageListener.swift,
- MessageStream.swift,
- MessageTracker.swift,
- Operator.swift,
- ProvidedAuthorizationTokenStateListener.swift
- Webim.swift,
- WebimError.swift,
- WebimLogger.swift,
- WebimRemoteNotification.swift,
- WebimSession.swift.
在 文档 中提供了每个类、协议、方法等的描述。
附加信息
WebimClientLibrary 使用 SQLite.swift。无需在 Podfile 中添加此依赖项。
为了便于实现多个功能,示例应用使用以下工具(按字母顺序)
- Cosmos - 用于实施操作员评分机制的视觉实现。
- Crashlytics - 用于检测崩溃及其原因。
- PopupDialog - 用于实现弹出对话框。
- SnapKit - 用于在代码中实现 AutoLayout 机制。
- SlackTextViewController - 用于在 Table View 中显示聊天流。
许可证
WebimClientLibrary可在MIT许可证下使用。有关更多信息,请参阅LICENSE文件。