WebimClientLibrary
这个库提供了Webim SDK for iOS – 一种将 Webim 服务集成到您的 iOS 应用中的方式。
安装
支持的最低 iOS 版本 - 8.0。
CocoaPods
在您的 Podfile 中为您要选定的目标添加以下行
pod 'WebimClientLibrary', :git => 'https://github.com/webim/webim-client-sdk-ios.git', :branch => 'master', :tag => '3.31.6'
必须指定 use_frameworks!
。
Carthage
在您的 Cartfile 中添加以下行
github "webim/webim-client-sdk-ios" ~> 3.31.6
其他注意事项
Objective-C
尝试将 WebimClientLibrary 集成到您的 Objective-C 代码中?请尝试我们的 WebimClientLibraryWrapper。
上一个版本
上一个 Objective-C 版本(版本号 2.x.x)可以从 version2 分支访问。
发布说明
- 使用 SDK 版本初始化请求。
示例
如果您尚未安装 CocoaPods,应首先运行 sudo gem install cocoapods
。
要运行示例项目,首先克隆仓库并从 Example 目录运行 pod install
。
用法
会话
SDK 功能使用从创建会话对象开始。
Webim类的newSessionBuilder()
方法返回会话构建器对象(类SessionBuilder
)(这两个类及其方法都在< onMouseover="paste('通知', 1)" title="粘贴: 通知" >通知< foliage:1>п>
典型用法示例
let webimSession = try Webim.newSessionBuilder().set(accountName: "ACCOUNT_NAME").set(location: "LOCATION_NAME").build()
在创建会话期间可以设置的参数和可能抛出的所有错误也在< onMouseover="paste('通知', 1)" title="粘贴: 通知" >通知< foliage:1>п>
创建会话后必须通过resume()
方法启动它(由于会话对象最初处于暂停状态)。
会话可以根据需要暂停(使用pause()
方法)、恢复(使用resume()
方法)以及销毁(使用destroy()
方法)。所有这些方法都在< onMouseover="paste('通知', 1)" title="粘贴: 通知" >通知< foliage:1>п>
消息流
所有消息流方法均在< onMouseover="paste('通知', 1)" title="粘贴: 通知" >通知< foliage:1>п>
为了使用这些方法,必须通过WebimSession
类对象调用getStream()
方法来获取MessageStream
对象。
方法示例:send(message:
)- 发送消息,rateOperatorWith(id:
byRating:)- 评分操作员,closeChat
消息追踪器
MessageStream
对象的newMessageTracker(messageListener:
)方法创建一个新的MessageTracker
对象,该对象可用于在应用内控制消息流。
例如,getNextMessages(byLimit:
completion:)方法从历史记录请求一定数量的消息。
方法描述可以在< onMouseover="paste('通知', 1)" title="粘贴: 通知" >通知< foliage:1>п>
消息监听器
MessageListener
协议描述了可以帮助跟踪消息流变化的方法。应用必须有一个实现此协议方法的类:added(message:
after:),removed(message:
),removedAllMessages
(),changed(message:
to:)。当新消息添加、消息被删除、所有消息被删除和消息被更改时,分别会自动调用这些方法。
完整的方法描述可以在< onMouseover="paste('通知', 1)" title="粘贴: 通知" >通知< foliage:1>п>
信息
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
协议的方法会被调用(所有具体的聊天状态都在相同的文件中进行了描述)。
远程通知
要启用远程通知,您需要将应用程序的证书/private密钥发送给我们。有关更多信息,请与我们的支持团队联系!
要使 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
:空。
远程通知处理,String.localizable文件示例
"P.OM" = "Message from %@ is received: %@."
结论
上述描述的实体和方法是使用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文件。