反复阅读了swift文档关于即时通讯使用内建账户完成签名这部分,然后运行了一下
override func viewDidLoad() {
super.viewDidLoad()
_ = LCUser.logIn(username: "username", password: "password") { (result) in
switch result {
case .success(object: let user):
do {
let client = try IMClient(user: user)
client.open(completion: { (result) in
// 执行其他逻辑(添加文档中的创建对话的代码)
do {
try client.createConversation(
clientIDs: ["Jerry"],
name: "Tom & Jerry",
isUnique: true,
completion: { (result) in
switch result {
case .success(value: let conversation):
print(conversation)
case .failure(error: let error):
print(error)
}
})
} catch {
print(error)
}
})
} catch {
print(error)
}
case .failure(error: let error):
print(error)
}
}
}
问题1:以上是根据文档,把上述代码直接放在viewDidLoad方法里面,并在执行其他逻辑处添加新建对话。当开启登录启用签名认证、对话操作启用签名认证、聊天记录查询启用签名认证后,发现并没有成功createConversation。如果使用内建账户系统进行即时通讯还需要实现IMSignatureDelegate吗?
问题2,如果用文档中的内建账户的方法“ let client = try IMClient(user: user)”,如何设置swift-sdk-demo中的 let client = try IMClient( ID: clientID,tag: tag,options: options,delegate: Client.delegator, eventQueue: Client.queue )几个参数,特别是tag这个参数?
问题3,如果使用内建账户需要实现IMSignatureDelegate ,其中的
func getClientOpenSignature(completion: (IMSignature) -> Void) {
// 基于 LeanCloud 云引擎的获取客户端登录签名的函数
}
这里“基于 LeanCloud 云引擎的获取客户端登录签名的函数”用swift怎么写呢,最好能给一个用内建账户实现签名的完整swift版demo,谢谢啦。