add ios conversion method
This commit is contained in:
@@ -179,6 +179,11 @@ public class CommonUtil {
|
||||
let result: String = getParamValue(methodCall: methodCall, param: KEY_SINGLE_MESSAGE_USERID) as! String
|
||||
return result
|
||||
}
|
||||
|
||||
public static func getUserid(methodCall: FlutterMethodCall)->String{
|
||||
let result: String = getParamValue(methodCall: methodCall, param: KEY_SINGLE_MESSAGE_USERID) as! String
|
||||
return result
|
||||
}
|
||||
|
||||
public static func getGroupMessageGroupid(methodCall: FlutterMethodCall)->String{
|
||||
let result: String = getParamValue(methodCall: methodCall, param: KEY_GROUP_MESSAGE_GROUPID) as! String
|
||||
@@ -190,11 +195,16 @@ public class CommonUtil {
|
||||
return result
|
||||
}
|
||||
|
||||
public static func getFindMessageIds(methodCall: FlutterMethodCall)->String{
|
||||
let result = getParamValue(methodCall: methodCall, param: KEY_FIND_MESSAGE_IDS) as AnyObject
|
||||
public static func getMessageIds(methodCall: FlutterMethodCall)->String{
|
||||
let result = getParamValue(methodCall: methodCall, param: KEY_MESSAGE_IDS) as AnyObject
|
||||
let r = JsonUtil.toString(object: result)
|
||||
return r
|
||||
}
|
||||
|
||||
public static func getTyping(methodCall: FlutterMethodCall)->String {
|
||||
let result: String = getParamValue(methodCall: methodCall, param: "typing") as! String
|
||||
return result
|
||||
}
|
||||
|
||||
public static func getConversationId(methodCall: FlutterMethodCall)->String{
|
||||
let result: String = getParamValue(methodCall: methodCall, param: KEY_CONVERSATION_ID) as! String
|
||||
@@ -303,7 +313,7 @@ public class CommonUtil {
|
||||
//group chat
|
||||
private static let KEY_GROUP_MESSAGE_GROUPID: String = "groupID";
|
||||
// find message
|
||||
private static let KEY_FIND_MESSAGE_IDS: String = "messageIDList";
|
||||
private static let KEY_MESSAGE_IDS: String = "messageIDList";
|
||||
// conversation
|
||||
private static let KEY_CONVERSATION_ID: String = "conversationID";
|
||||
private static let KEY_CONVERSATION_IDS: String = "conversationIDList";
|
||||
|
||||
@@ -42,6 +42,23 @@ public class ConversationManager:NSObject{
|
||||
func pinConversation(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
|
||||
Open_im_sdkPinConversation(CommonUtil.getConversationId(methodCall: methodCall), CommonUtil.isPinnedConversation(methodCall: methodCall), BaseImpl(result: result))
|
||||
}
|
||||
|
||||
func markSingleMessageHasRead(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
|
||||
Open_im_sdkMarkSingleMessageHasRead(BaseImpl(result: result), CommonUtil.getSingleMessageUserid(methodCall: methodCall))
|
||||
}
|
||||
|
||||
func markGroupMessageHasRead(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
|
||||
Open_im_sdkMarkGroupMessageHasRead(BaseImpl(result: result), CommonUtil.getGroupMessageGroupid(methodCall: methodCall))
|
||||
}
|
||||
|
||||
func getTotalUnreadMsgCount(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
|
||||
Open_im_sdkGetTotalUnreadMsgCount(BaseImpl(result: result))
|
||||
}
|
||||
|
||||
func getConversationIDBySessionType(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
|
||||
let conversationID = Open_im_sdkGetConversationIDBySessionType(CommonUtil.getConversationSourceId(methodCall: methodCall), CommonUtil.getConversationSessionType(methodCall: methodCall))
|
||||
DispatchQueue.main.async { result(conversationID) }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -62,7 +62,6 @@ public class MessageManager:NSObject{
|
||||
}
|
||||
|
||||
func deleteMessages(methodCall: FlutterMethodCall, result: FlutterResult){
|
||||
|
||||
}
|
||||
|
||||
func insertSingleMessageToLocalStorage(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
|
||||
@@ -70,11 +69,18 @@ public class MessageManager:NSObject{
|
||||
}
|
||||
|
||||
func findMessages(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
|
||||
Open_im_sdkFindMessages(BaseImpl(result: result), CommonUtil.getFindMessageIds(methodCall: methodCall))
|
||||
Open_im_sdkFindMessages(BaseImpl(result: result), CommonUtil.getMessageIds(methodCall: methodCall))
|
||||
}
|
||||
|
||||
func markSingleMessageHasRead(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
|
||||
Open_im_sdkMarkSingleMessageHasRead(BaseImpl(result: result), CommonUtil.getSingleMessageUserid(methodCall: methodCall))
|
||||
|
||||
func markC2CMessageAsRead(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
|
||||
Open_im_sdkMarkC2CMessageAsRead(BaseImpl(result: result), CommonUtil.getUserid(methodCall: methodCall), CommonUtil.getMessageIds(methodCall: methodCall))
|
||||
}
|
||||
|
||||
func typingStatusUpdate(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
|
||||
let receiver = CommonUtil.getUserid(methodCall: methodCall)
|
||||
let typing = CommonUtil.getTyping(methodCall: methodCall)
|
||||
Open_im_sdkTypingStatusUpdate(receiver, typing)
|
||||
DispatchQueue.main.async { result(nil) }
|
||||
}
|
||||
|
||||
func markGroupMessageHasRead(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
||||
@@ -121,76 +127,70 @@ public class MessageManager:NSObject{
|
||||
DispatchQueue.main.async { result(prama) }
|
||||
}
|
||||
|
||||
func getTotalUnreadMsgCount(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
|
||||
Open_im_sdkGetTotalUnreadMsgCount(BaseImpl(result: result))
|
||||
}
|
||||
|
||||
func forceSyncMsg(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
|
||||
Open_im_sdkForceSyncMsg()
|
||||
}
|
||||
}
|
||||
|
||||
public class SendMsgProgressListener:NSObject, Open_im_sdkSendMsgCallBackProtocol {
|
||||
|
||||
private let channel: FlutterMethodChannel
|
||||
private var result: FlutterResult?
|
||||
private var call: FlutterMethodCall?
|
||||
private let values: NSMutableDictionary = NSMutableDictionary(capacity: 0)
|
||||
|
||||
init(channel: FlutterMethodChannel) {
|
||||
self.channel = channel
|
||||
}
|
||||
|
||||
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)) }
|
||||
}
|
||||
|
||||
public func onProgress(_ progress: Int) {
|
||||
print("=================onProgress============\nprogress:\(progress)");
|
||||
values.setValue(CommonUtil.getSendMessageClientMsgID(methodCall: self.call!), forKey: "clientMsgID")
|
||||
values.setValue(progress, forKey: "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) }
|
||||
}
|
||||
|
||||
}
|
||||
public class SendMsgProgressListener:NSObject, Open_im_sdkSendMsgCallBackProtocol {
|
||||
|
||||
private let channel: FlutterMethodChannel
|
||||
private var result: FlutterResult?
|
||||
private var call: FlutterMethodCall?
|
||||
private let values: NSMutableDictionary = NSMutableDictionary(capacity: 0)
|
||||
|
||||
init(channel: FlutterMethodChannel) {
|
||||
self.channel = channel
|
||||
}
|
||||
|
||||
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)) }
|
||||
}
|
||||
|
||||
public func onProgress(_ progress: Int) {
|
||||
print("=================onProgress============\nprogress:\(progress)");
|
||||
values.setValue(CommonUtil.getSendMessageClientMsgID(methodCall: self.call!), forKey: "clientMsgID")
|
||||
values.setValue(progress, forKey: "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) }
|
||||
}
|
||||
|
||||
public class AdvancedMsgListener: NSObject, Open_im_sdkOnAdvancedMsgListenerProtocol {
|
||||
private let channel: FlutterMethodChannel
|
||||
private let values: NSMutableDictionary = NSMutableDictionary(capacity: 0)
|
||||
|
||||
init(channel: FlutterMethodChannel, id: String) {
|
||||
self.channel = channel
|
||||
values.setValue(id, forKey: "id")
|
||||
}
|
||||
|
||||
public func onRecvC2CReadReceipt(_ msgReceiptList: String?) {
|
||||
values.setValue(msgReceiptList, forKey: "message")
|
||||
CommonUtil.emitEvent(channel: channel, method: "advancedMsgListener", type: "onRecvC2CReadReceipt", errCode: nil, errMsg: nil, data: values)
|
||||
|
||||
public class AdvancedMsgListener: NSObject, Open_im_sdkOnAdvancedMsgListenerProtocol {
|
||||
private let channel: FlutterMethodChannel
|
||||
private let values: NSMutableDictionary = NSMutableDictionary(capacity: 0)
|
||||
|
||||
init(channel: FlutterMethodChannel, id: String) {
|
||||
self.channel = channel
|
||||
values.setValue(id, forKey: "id")
|
||||
}
|
||||
|
||||
public func onRecvC2CReadReceipt(_ msgReceiptList: String?) {
|
||||
values.setValue(msgReceiptList, forKey: "message")
|
||||
CommonUtil.emitEvent(channel: channel, method: "advancedMsgListener", type: "onRecvC2CReadReceipt", errCode: nil, errMsg: nil, data: values)
|
||||
}
|
||||
|
||||
public func onRecvMessageRevoked(_ msgId: String?) {
|
||||
values.setValue(msgId, forKey: "message")
|
||||
CommonUtil.emitEvent(channel: channel, method: "advancedMsgListener", type: "onRecvMessageRevoked", errCode: nil, errMsg: nil, data: values)
|
||||
}
|
||||
|
||||
public func onRecvNewMessage(_ message: String?) {
|
||||
values.setValue(message, forKey: "message")
|
||||
CommonUtil.emitEvent(channel: channel, method: "advancedMsgListener", type: "onRecvNewMessage", errCode: nil, errMsg: nil, data: values)
|
||||
}
|
||||
}
|
||||
|
||||
public func onRecvMessageRevoked(_ msgId: String?) {
|
||||
values.setValue(msgId, forKey: "message")
|
||||
CommonUtil.emitEvent(channel: channel, method: "advancedMsgListener", type: "onRecvMessageRevoked", errCode: nil, errMsg: nil, data: values)
|
||||
}
|
||||
|
||||
public func onRecvNewMessage(_ message: String?) {
|
||||
values.setValue(message, forKey: "message")
|
||||
CommonUtil.emitEvent(channel: channel, method: "advancedMsgListener", type: "onRecvNewMessage", errCode: nil, errMsg: nil, data: values)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -81,6 +81,14 @@ public class SwiftFlutterOpenimSdkPlugin: NSObject, FlutterPlugin {
|
||||
conversationManager.setConversationDraft(methodCall: call, result: result)
|
||||
}else if method == "pinConversation" {
|
||||
conversationManager.pinConversation(methodCall: call, result: result)
|
||||
}else if method == "markSingleMessageHasRead" {
|
||||
conversationManager.markSingleMessageHasRead(methodCall: call, result: result)
|
||||
}else if method == "markGroupMessageHasRead" {
|
||||
conversationManager.markGroupMessageHasRead(methodCall: call, result: result)
|
||||
}else if method == "getTotalUnreadMsgCount" {
|
||||
conversationManager.getTotalUnreadMsgCount(methodCall: call, result: result)
|
||||
}else if method == "getConversationIDBySessionType" {
|
||||
conversationManager.getConversationIDBySessionType(methodCall: call, result: result)
|
||||
}else{
|
||||
print("Handle MethodName Error: ConversationManager method: \(method) not found")
|
||||
}
|
||||
@@ -145,26 +153,42 @@ public class SwiftFlutterOpenimSdkPlugin: NSObject, FlutterPlugin {
|
||||
messageManager.insertSingleMessageToLocalStorage(methodCall: call, result: result)
|
||||
}else if method == "findMessages" {
|
||||
messageManager.findMessages(methodCall: call, result: result)
|
||||
}else if method == "markSingleMessageHasRead" {
|
||||
messageManager.markSingleMessageHasRead(methodCall: call, result: result)
|
||||
}else if method == "markC2CMessageAsRead" {
|
||||
messageManager.markC2CMessageAsRead(methodCall: call, result: result)
|
||||
}else if method == "typingStatusUpdate" {
|
||||
messageManager.typingStatusUpdate(methodCall: call, result: result)
|
||||
}else if method == "createTextMessage" {
|
||||
messageManager.createTextMessage(methodCall: call, result: result)
|
||||
}else if method == "createTextAtMessage" {
|
||||
messageManager.createTextAtMessage(methodCall: call, result: result)
|
||||
}else if method == "createImageMessage" {
|
||||
messageManager.createImageMessage(methodCall: call, result: result)
|
||||
}else if method == "createImageMessageFromFullPath" {
|
||||
// TODO:
|
||||
}else if method == "createSoundMessage" {
|
||||
messageManager.createSoundMessage(methodCall: call, result: result)
|
||||
}else if method == "createSoundMessageFromFullPath" {
|
||||
// TODO:
|
||||
}else if method == "createVideoMessage" {
|
||||
messageManager.createVideoMessage(methodCall: call, result: result)
|
||||
}else if method == "createVideoMessageFromFullPath" {
|
||||
// TODO:
|
||||
}else if method == "createFileMessage" {
|
||||
messageManager.createFileMessage(methodCall: call, result: result)
|
||||
}else if method == "createMergerMessage" {
|
||||
messageManager.createMergerMessage(methodCall: call, result: result)
|
||||
}else if method == "createForwardMessage" {
|
||||
messageManager.createForwardMessage(methodCall: call, result: result)
|
||||
}else if method == "getTotalUnreadMsgCount" {
|
||||
messageManager.getTotalUnreadMsgCount(methodCall: call, result: result)
|
||||
}else if method == "createLocationMessage" {
|
||||
// TODO:
|
||||
}else if method == "createCustomMessage" {
|
||||
// TODO:
|
||||
}else if method == "createQuoteMessage" {
|
||||
// TODO:
|
||||
}else if method == "createCardMessage" {
|
||||
// TODO:
|
||||
}else if method == "forceSyncMsg" {
|
||||
// TODO:
|
||||
}else{
|
||||
print("Handle MethodName Error: MessageManager method: \(method) not found")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user