Fix ios message progress bug

main
hrxiang 3 years ago
parent 6ef237b1e6
commit 9c176068c4
  1. 42
      ios/Classes/Module/MessageManager.swift

@ -67,9 +67,9 @@ public class MessageManager: BaseServiceManager {
}
func sendMessage(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
let sendMsgProgressListener: SendMsgProgressListener = SendMsgProgressListener(channel: channel)
sendMsgProgressListener.setCall(methodCall: methodCall)
sendMsgProgressListener.setResult(result: result)
let sendMsgProgressListener: SendMsgProgressListener = SendMsgProgressListener(channel: channel,result: result,methodCall: methodCall)
// sendMsgProgressListener.setCall(methodCall: methodCall)
// sendMsgProgressListener.setResult(result: result)
print("===============sendMessage===============")
Open_im_sdkSendMessage(sendMsgProgressListener, methodCall[jsonString: "message"], methodCall[string: "userID"],
methodCall[string: "groupID"], methodCall[bool: "onlineUserOnly"])
@ -198,42 +198,44 @@ public class MessageManager: BaseServiceManager {
}
public class SendMsgProgressListener: NSObject, Open_im_sdkSendMsgCallBackProtocol {
private let channel: FlutterMethodChannel
private var result: FlutterResult?
private var call: FlutterMethodCall?
private var values: [String: Any] = [:]
private let result: FlutterResult
private let call: FlutterMethodCall
init(channel: FlutterMethodChannel) {
init(channel: FlutterMethodChannel, result: @escaping FlutterResult, methodCall: FlutterMethodCall) {
self.channel = channel
}
func setResult(result: @escaping FlutterResult){
self.result = result
}
func setCall(methodCall: FlutterMethodCall){
self.call = methodCall
}
// func setResult(result: @escaping FlutterResult){
// self.result = result
// }
//
// func setCall(methodCall: FlutterMethodCall){
// self.call = methodCall
// }
public func onError(_ errCode: Int, errMsg: String?) {
print("=================onError============\nerrcode:\(errCode),errMsg:\(errMsg!)")
DispatchQueue.main.async { self.result!(FlutterError(code: "\(errCode)", message: errMsg, details: nil)) }
DispatchQueue.main.async { self.result(FlutterError(code: "\(errCode)", message: errMsg, details: nil)) }
}
public func onProgress(_ progress: Int) {
guard let call = call else {
return
}
// guard let call = call else {
// return
// }
var values: [String: Any] = [:]
print("=================onProgress============\nprogress:\(progress)")
values["clientMsgID"] = call[string: "clientMsgID"]
let message = call[dict: "message"]
values["clientMsgID"] = message["clientMsgID"]
values["progress"] = progress
CommonUtil.emitEvent(channel: channel, method: "msgSendProgressListener", type: "onProgress", errCode: nil, errMsg: nil, data: values)
}
public func onSuccess(_ data: String?) {
print("=================onSuccess============\nsuccess:\(data!)")
DispatchQueue.main.async { self.result!(data) }
DispatchQueue.main.async { self.result(data) }
}
}

Loading…
Cancel
Save