hrxiang 4 years ago
parent f80410929d
commit b8ebc36d29
  1. 14
      android/src/main/java/io/openim/flutter_openim_sdk/util/CommonUtil.java
  2. 13
      example/ios/Runner/Base.lproj/Main.storyboard
  3. 170
      ios/Classes/CommonUtil.swift
  4. 11
      ios/Classes/Module/ConversationManager.swift
  5. 14
      ios/Classes/Module/FriendshipManager.swift
  6. 112
      ios/Classes/Module/GroupManager.swift
  7. 10
      ios/Classes/Module/IMManager.swift
  8. 26
      ios/Classes/Module/MessageManager.swift
  9. 14
      ios/Classes/SwiftFlutterOpenimSdkPlugin.swift

@ -89,19 +89,22 @@ public class CommonUtil {
}
public static String getJsonUid(MethodCall methodCall) {
return JsonUtil.toString(getParamValue(methodCall, KEY_UID));
return getSDKJsonParam(methodCall, KEY_UID);
}
public static String getToken(MethodCall methodCall) {
return getParamValue(methodCall, KEY_TOKEN);
}
public static String getUidList(MethodCall methodCall) {
return getSDKJsonParam(methodCall, KEY_USER_IDS);
}
public static String getMessageText(MethodCall methodCall) {
return getParamValue(methodCall, KEY_TEXT);
}
public static String getAtUserList(MethodCall methodCall) {
// return methodCall.argument(KEY_AT_USER_LIST);
return getSDKJsonParam(methodCall, KEY_AT_USER_LIST);
}
@ -144,7 +147,6 @@ public class CommonUtil {
}
public static String getMergerMessageList(MethodCall methodCall) {
// return methodCall.argument(KEY_MERGER_MESSAGE_LIST);
return getSDKJsonParam(methodCall, KEY_MERGER_MESSAGE_LIST);
}
@ -153,12 +155,10 @@ public class CommonUtil {
}
public static String getSummaryList(MethodCall methodCall) {
// return methodCall.argument(KEY_SUMMARY_LIST);
return getSDKJsonParam(methodCall, KEY_SUMMARY_LIST);
}
public static String getForwardMessage(MethodCall methodCall) {
// return methodCall.argument(KEY_FORWARD_MESSAGE);
return getSDKJsonParam(methodCall, KEY_FORWARD_MESSAGE);
}
@ -227,10 +227,6 @@ public class CommonUtil {
return getParamValue(methodCall, KEY_CONVERSATION_PINNED);
}
public static String getUidList(MethodCall methodCall) {
return getSDKJsonParam(methodCall, KEY_USER_IDS);
}
public static String getGid(MethodCall methodCall) {
return getParamValue(methodCall, KEY_GROUP_ID);
}

@ -1,8 +1,10 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="10117" systemVersion="15F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="BYZ-38-t0r">
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="19115.2" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="BYZ-38-t0r">
<device id="retina6_1" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="19107.4"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
<!--Flutter View Controller-->
@ -14,13 +16,14 @@
<viewControllerLayoutGuide type="bottom" id="wfy-db-euE"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="-26" y="-44"/>
</scene>
</scenes>
</document>

@ -1,9 +1,3 @@
//
// CommonUtil.swift
// Runner
//
// Created by z1u24 on 2021/6/28.
//
import Foundation
@ -47,41 +41,37 @@ public class CommonUtil {
}
public static func getUid(methodCall: FlutterMethodCall)->String{
let result: String = getParamValue(methodCall: methodCall, param: KEY_LOGIN_UID) as! String
let result: String = getParamValue(methodCall: methodCall, param: KEY_UID) as! String
return result
}
public static func getToken(methodCall: FlutterMethodCall)->String{
let result: String = getParamValue(methodCall: methodCall, param: KEY_LOGIN_TOKEN) as! String
return result
}
public static func getUidList(methodCall: FlutterMethodCall)->String{
let result = getParamValue(methodCall: methodCall, param: KEY_UID_LIST) as AnyObject
public static func getJsonUid(methodCall: FlutterMethodCall)->String{
let result = getParamValue(methodCall: methodCall, param: KEY_UID) as AnyObject
let r = JsonUtil.toString(object: result)
return r
}
public static func getUserUid(methodCall: FlutterMethodCall)->String{
let result = getParamValue(methodCall: methodCall, param: KEY_LOGIN_UID) as AnyObject
let r = JsonUtil.toString(object: result)
return r
public static func getToken(methodCall: FlutterMethodCall)->String{
let result: String = getParamValue(methodCall: methodCall, param: KEY_TOKEN) as! String
return result
}
public static func getDeleteUid(methodCall: FlutterMethodCall)->String{
let result = getParamValue(methodCall: methodCall, param: KEY_DELETE_UID) as AnyObject
public static func getUidList(methodCall: FlutterMethodCall)->String{
let result = getParamValue(methodCall: methodCall, param: KEY_USER_IDS) as AnyObject
let r = JsonUtil.toString(object: result)
return r
}
public static func getMessageText(methodCall: FlutterMethodCall)->String{
let result: String = getParamValue(methodCall: methodCall, param: KEY_TEXT) as! String
return result
}
public static func getAtUserList(methodCall: FlutterMethodCall)->String{
let result: String = getParamValue(methodCall: methodCall, param: KEY_AT_USER_LIST) as! String
return result
let result: String = getParamValue(methodCall: methodCall, param: KEY_AT_USER_LIST) as AnyObject
let r = JsonUtil.toString(object: result)
return r
}
public static func getImagePath(methodCall: FlutterMethodCall)->String{
@ -130,8 +120,9 @@ public class CommonUtil {
}
public static func getMergerMessageList(methodCall: FlutterMethodCall)->String{
let result: String = getParamValue(methodCall: methodCall, param: KEY_MERGER_MESSAGE_LIST) as! String
return result
let result: String = getParamValue(methodCall: methodCall, param: KEY_MERGER_MESSAGE_LIST) as AnyObject
let r = JsonUtil.toString(object: result)
return r
}
public static func getMergerMessageTitle(methodCall: FlutterMethodCall)->String{
@ -140,13 +131,15 @@ public class CommonUtil {
}
public static func getSummaryList(methodCall: FlutterMethodCall)->String{
let result: String = getParamValue(methodCall: methodCall, param: KEY_SUMMARY_LIST) as! String
return result
let result: String = getParamValue(methodCall: methodCall, param: KEY_SUMMARY_LIST) as AnyObject
let r = JsonUtil.toString(object: result)
return r
}
public static func getForwardMessage(methodCall: FlutterMethodCall)->String{
let result: String = getParamValue(methodCall: methodCall, param: KEY_FORWARD_MESSAGE) as! String
return result
let result: String = getParamValue(methodCall: methodCall, param: KEY_FORWARD_MESSAGE) as AnyObject
let r = JsonUtil.toString(object: result)
return r
}
public static func getSendMessageContent(methodCall: FlutterMethodCall)->String{
@ -194,8 +187,9 @@ public class CommonUtil {
}
public static func getFindMessageIds(methodCall: FlutterMethodCall)->String{
let result: String = getParamValue(methodCall: methodCall, param: KEY_FIND_MESSAGE_IDS) as! String
return result
let result: String = getParamValue(methodCall: methodCall, param: KEY_FIND_MESSAGE_IDS) as AnyObject
let r = JsonUtil.toString(object: result)
return r
}
public static func getConversationId(methodCall: FlutterMethodCall)->String{
@ -204,7 +198,18 @@ public class CommonUtil {
}
public static func getConversationIds(methodCall: FlutterMethodCall)->String{
let result: String = getParamValue(methodCall: methodCall, param: KEY_CONVERSATION_IDS) as! String
let result: String = getParamValue(methodCall: methodCall, param: KEY_CONVERSATION_IDS) as AnyObject
let r = JsonUtil.toString(object: result)
return r
}
public static func getConversationSourceId(methodCall: FlutterMethodCall)->String {
let result: String = getParamValue(methodCall: methodCall, param: KEY_CONVERSATION_SOURCE_ID);
return result
}
public static func getConversationSessionType(methodCall: FlutterMethodCall)->Int{
let result: Int = getParamValue(methodCall: methodCall, param: KEY_CONVERSATION_SESSION_TYPE) as! Int
return result
}
@ -218,81 +223,54 @@ public class CommonUtil {
return (result != 0)
}
public static func getSessionType(methodCall: FlutterMethodCall)->Int{
let result: Int = getParamValue(methodCall: methodCall, param: KEY_CONVERSATION_SESSION) as! Int
return result
}
/**
* group
*/
public static func getGroupId(methodCall: FlutterMethodCall)->String{
public static func getGid(methodCall: FlutterMethodCall)->String{
let result: String = getParamValue(methodCall: methodCall, param: KEY_GROUP_ID) as! String
return result
}
public static func getGroupReason(methodCall: FlutterMethodCall)->String{
let result: String = getParamValue(methodCall: methodCall, param: KEY_GROUP_REASON) as! String
return result
public static func getGidList(methodCall: FlutterMethodCall)->String{
let result: String = getParamValue(methodCall: methodCall, param: KEY_GROUP_IDS) as AnyObject
let r = JsonUtil.toString(object: result)
return r
}
public static func getGroupUserList(methodCall: FlutterMethodCall)->String{
let result: String = getParamValue(methodCall: methodCall, param: KEY_GROUP_USERLIST) as! String
public static func getGroupOpReason(methodCall: FlutterMethodCall)->String{
let result: String = getParamValue(methodCall: methodCall, param: KEY_GROUP_OP_REASON) as! String
return result
}
public static func getGroupFilter(methodCall: FlutterMethodCall)->Int32{
let result: Int32 = getParamValue(methodCall: methodCall, param: KEY_GROUP_FILTER) as! Int32
public static func getGroupListFilter(methodCall: FlutterMethodCall)->Int32{
let result: Int32 = getParamValue(methodCall: methodCall, param: KEY_GROUP_LIST_FILTER) as! Int32
return result
}
public static func getGroupNext(methodCall: FlutterMethodCall)->Int32{
let result: Int32 = getParamValue(methodCall: methodCall, param: KEY_GROUP_NEXT) as! Int32
public static func getGroupListNext(methodCall: FlutterMethodCall)->Int32{
let result: Int32 = getParamValue(methodCall: methodCall, param: KEY_GROUP_LIST_NEXT) as! Int32
return result
}
public static func getGroupInfo(methodCall: FlutterMethodCall)->String{
let result: String = getParamValue(methodCall: methodCall, param: KEY_GROUP_INFO) as! String
return result
}
public static func getGroupMemberList(methodCall: FlutterMethodCall)->String{
let result: String = getParamValue(methodCall: methodCall, param: KEY_GROUP_MEMBERLIST) as! String
return result
}
public static func getGroupJsonInfo(methodCall: FlutterMethodCall)->String{
let result: String = getParamValue(methodCall: methodCall, param: KEY_GROUP_JSONINFO) as! String
return result
}
public static func getGroupIdList(methodCall: FlutterMethodCall)->String{
let result: String = getParamValue(methodCall: methodCall, param: KEY_GROUP_IDLIST) as! String
return result
}
public static func getGroupMessage(methodCall: FlutterMethodCall)->String{
let result: String = getParamValue(methodCall: methodCall, param: KEY_GROUP_MESSAGE) as! String
return result
let result: String = getParamValue(methodCall: methodCall, param: KEY_GROUP_INFO) as AnyObject
let r = JsonUtil.toString(object: result)
return r
}
public static func getGroupUserId(methodCall: FlutterMethodCall)->String{
let result: String = getParamValue(methodCall: methodCall, param: KEY_USER_ID) as! String
return result
public static func getGroupMemberRoleList(methodCall: FlutterMethodCall)->String {
let result: String = getParamValue(methodCall: methodCall, param: KEY_GROUP_MEMBER_ROLE_LIST) as AnyObject
let r = JsonUtil.toString(object: result)
return r
}
public static func getGroupApplication(methodCall: FlutterMethodCall)->String{
let result: String = getParamValue(methodCall: methodCall, param: KEY_GROUP_APPLICATION) as! String
return result
public static func getGroupApplicationInfo(methodCall: FlutterMethodCall)->String {
let result: String = getParamValue(methodCall: methodCall, param: KEY_GROUP_APPLICATION_INFO) as AnyObject
let r = JsonUtil.toString(object: result)
return r
}
//login
private static let KEY_LOGIN_UID: String = "uid";
private static let KEY_LOGIN_TOKEN: String = "token";
//userinfo
private static let KEY_UID_LIST: String = "uidList";
private static let KEY_DELETE_UID: String = "deleteUid";
private static let KEY_UID: String = "uid";
private static let KEY_TOKEN: String = "token";
//create message body
private static let KEY_TEXT: String = "text";
private static let KEY_AT_USER_LIST: String = "atUserList";
@ -307,7 +285,7 @@ public class CommonUtil {
private static let KEY_FILE_NAME: String = "fileName";
private static let KEY_MERGER_MESSAGE_LIST: String = "messageList";
private static let KEY_MERGER_MESSAGE_TITLE: String = "title";
private static let KEY_SUMMARY_LIST: String = "summaryList";
private static let KEY_SUMMARY_LIST =: String "summaryList";
private static let KEY_FORWARD_MESSAGE: String = "message";
//send message
private static let KEY_SEND_MESSAGE_CONTENT: String = "message";
@ -319,6 +297,8 @@ public class CommonUtil {
private static let KEY_SINGLE_MESSAGE_CONTENT: String = "message";
private static let KEY_SINGLE_MESSAGE_USERID: String = "userID";
private static let KEY_SINGLE_MESSAGE_SENDER: String = "sender";
//group chat
private static let KEY_GROUP_MESSAGE_GROUPID: String = "groupID";
// find message
private static let KEY_FIND_MESSAGE_IDS: String = "messageIDList";
// conversation
@ -326,19 +306,17 @@ public class CommonUtil {
private static let KEY_CONVERSATION_IDS: String = "conversationIDList";
private static let KEY_CONVERSATION_DRAFT: String = "draftText";
private static let KEY_CONVERSATION_PINNED: String = "isPinned";
private static let KEY_CONVERSATION_SESSION: String = "sessionType";
private static let KEY_CONVERSATION_SOURCE_ID: String = "sourceID";
private static let KEY_CONVERSATION_SESSION_TYPE: String = "sessionType";
// user info
private static let KEY_USER_IDS: String = "uidList";
// group
private static let KEY_GROUP_ID: String = "groupid";
private static let KEY_GROUP_USERLIST: String = "userList";
private static let KEY_GROUP_REASON: String = "reason";
private static let KEY_GROUP_FILTER: String = "filter";
private static let KEY_GROUP_NEXT: String = "next";
private static let KEY_GROUP_ID: String = "gid";
private static let KEY_GROUP_IDS: String = "gidList";
private static let KEY_GROUP_OP_REASON: String = "reason";
private static let KEY_GROUP_LIST_FILTER: String = "filter";
private static let KEY_GROUP_LIST_NEXT: String = "next";
private static let KEY_GROUP_INFO: String = "gInfo";
private static let KEY_GROUP_MEMBERLIST: String = "memberList";
private static let KEY_GROUP_JSONINFO: String = "jsonGroupInfo";
private static let KEY_GROUP_IDLIST: String = "groupIdList";
private static let KEY_GROUP_MESSAGE: String = "message";
private static let KEY_USER_ID: String = "userId";
private static let KEY_GROUP_APPLICATION: String = "application";
private static let KEY_GROUP_MEMBER_ROLE_LIST: String = "memberList";
private static let KEY_GROUP_APPLICATION_INFO: String = "application";
}

@ -16,7 +16,7 @@ public class ConversationManager:NSObject{
}
func setConversationListener(methodCall: FlutterMethodCall, result: FlutterResult){
Open_im_sdkSetConversationListener(ConversationListenerImpl(channel: channel))
Open_im_sdkSetConversationListener(ConversationListener(channel: channel))
}
func getAllConversationList(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
@ -24,7 +24,7 @@ public class ConversationManager:NSObject{
}
func getOneConversation(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkGetOneConversation(CommonUtil.getConversationId(methodCall: methodCall), CommonUtil.getSessionType(methodCall: methodCall), BaseImpl(result: result))
Open_im_sdkGetOneConversation(CommonUtil.getConversationSourceId(methodCall: methodCall), CommonUtil.getConversationSessionType(methodCall: methodCall), BaseImpl(result: result))
}
func getMultipleConversation(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
@ -42,15 +42,10 @@ 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 getTotalUnreadMsgCount(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkGetTotalUnreadMsgCount(BaseImpl(result: result))
}
}
public class ConversationListenerImpl:NSObject,Open_im_sdkOnConversationListenerProtocol {
public class ConversationListener:NSObject,Open_im_sdkOnConversationListenerProtocol {
private let channel:FlutterMethodChannel

@ -16,7 +16,7 @@ public class FriendshipManager:NSObject{
}
func setFriendListener(methodCall: FlutterMethodCall, result: FlutterResult){
Open_im_sdkSetFriendListener(FriendshipListenerImpl(channel: channel))
Open_im_sdkSetFriendListener(FriendshipListener(channel: channel))
}
func getFriendsInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
@ -40,7 +40,7 @@ public class FriendshipManager:NSObject{
}
func addToBlackList(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkAddToBlackList(BaseImpl(result: result), CommonUtil.getUserUid(methodCall: methodCall))
Open_im_sdkAddToBlackList(BaseImpl(result: result), CommonUtil.getJsonUid(methodCall: methodCall))
}
func getBlackList(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
@ -48,7 +48,7 @@ public class FriendshipManager:NSObject{
}
func deleteFromBlackList(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkDeleteFromBlackList(BaseImpl(result: result), CommonUtil.getUserUid(methodCall: methodCall))
Open_im_sdkDeleteFromBlackList(BaseImpl(result: result), CommonUtil.getJsonUid(methodCall: methodCall))
}
func checkFriend(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
@ -56,15 +56,15 @@ public class FriendshipManager:NSObject{
}
func deleteFromFriendList(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkDeleteFromFriendList(CommonUtil.getDeleteUid(methodCall: methodCall), BaseImpl(result: result))
Open_im_sdkDeleteFromFriendList(CommonUtil.getJsonUid(methodCall: methodCall), BaseImpl(result: result))
}
func acceptFriendApplication(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkAcceptFriendApplication(BaseImpl(result: result), CommonUtil.getUid(methodCall: methodCall))
Open_im_sdkAcceptFriendApplication(BaseImpl(result: result), CommonUtil.getJsonUid(methodCall: methodCall))
}
func refuseFriendApplication(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkRefuseFriendApplication(BaseImpl(result: result), CommonUtil.getUid(methodCall: methodCall))
Open_im_sdkRefuseFriendApplication(BaseImpl(result: result), CommonUtil.getJsonUid(methodCall: methodCall))
}
func forceSyncFriendApplication(methodCall: FlutterMethodCall, result: FlutterResult){
@ -80,7 +80,7 @@ public class FriendshipManager:NSObject{
}
}
public class FriendshipListenerImpl:NSObject,Open_im_sdkOnFriendshipListenerProtocol {
public class FriendshipListener:NSObject,Open_im_sdkOnFriendshipListenerProtocol {
private let channel:FlutterMethodChannel
init(channel:FlutterMethodChannel) {

@ -15,20 +15,24 @@ public class GroupManager:NSObject{
self.channel = channel
}
func setGroupListener(methodCall: FlutterMethodCall, result: FlutterResult){
Open_im_sdkSetGroupListener(GroupListener(channel: channel))
}
func inviteUserToGroup(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkInviteUserToGroup(CommonUtil.getGroupId(methodCall: methodCall), CommonUtil.getGroupReason(methodCall: methodCall), CommonUtil.getGroupUserList(methodCall: methodCall), BaseImpl(result: result))
Open_im_sdkInviteUserToGroup(CommonUtil.getGid(methodCall: methodCall), CommonUtil.getGroupOpReason(methodCall: methodCall), CommonUtil.getUidList(methodCall: methodCall), BaseImpl(result: result))
}
func kickGroupMember(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkKickGroupMember(CommonUtil.getGroupId(methodCall: methodCall), CommonUtil.getGroupUserList(methodCall: methodCall), CommonUtil.getGroupReason(methodCall: methodCall), BaseImpl(result: result))
Open_im_sdkKickGroupMember(CommonUtil.getGid(methodCall: methodCall), CommonUtil.getGroupOpReason(methodCall: methodCall), CommonUtil.getUidList(methodCall: methodCall), BaseImpl(result: result))
}
func getGroupMembersInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkGetGroupMembersInfo(CommonUtil.getGroupId(methodCall: methodCall), CommonUtil.getGroupUserList(methodCall: methodCall), BaseImpl(result: result))
Open_im_sdkGetGroupMembersInfo(CommonUtil.getGid(methodCall: methodCall), CommonUtil.getUidList(methodCall: methodCall), BaseImpl(result: result))
}
func getGroupMemberList(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkGetGroupMemberList(CommonUtil.getGroupId(methodCall: methodCall), CommonUtil.getGroupFilter(methodCall: methodCall), CommonUtil.getGroupNext(methodCall: methodCall), BaseImpl(result: result))
Open_im_sdkGetGroupMemberList(CommonUtil.getGid(methodCall: methodCall), CommonUtil.getGroupListFilter(methodCall: methodCall), CommonUtil.getGroupListNext(methodCall: methodCall), BaseImpl(result: result))
}
func getJoinedGroupList(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
@ -36,27 +40,27 @@ public class GroupManager:NSObject{
}
func createGroup(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkCreateGroup(CommonUtil.getGroupInfo(methodCall: methodCall), CommonUtil.getGroupMemberList(methodCall: methodCall), BaseImpl(result: result))
Open_im_sdkCreateGroup(CommonUtil.getGroupInfo(methodCall: methodCall), CommonUtil.getGroupMemberRoleList(methodCall: methodCall), BaseImpl(result: result))
}
func setGroupInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkSetGroupInfo(CommonUtil.getGroupJsonInfo(methodCall: methodCall), BaseImpl(result: result))
Open_im_sdkSetGroupInfo(CommonUtil.getGroupInfo(methodCall: methodCall), BaseImpl(result: result))
}
func getGroupsInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkGetGroupsInfo(CommonUtil.getGroupIdList(methodCall: methodCall), BaseImpl(result: result))
Open_im_sdkGetGroupsInfo(CommonUtil.getGidList(methodCall: methodCall), BaseImpl(result: result))
}
func joinGroup(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkJoinGroup(CommonUtil.getGroupId(methodCall: methodCall), CommonUtil.getGroupMessage(methodCall: methodCall), BaseImpl(result: result))
Open_im_sdkJoinGroup(CommonUtil.getGid(methodCall: methodCall), CommonUtil.getGroupOpReason(methodCall: methodCall), BaseImpl(result: result))
}
func quitGroup(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkQuitGroup(CommonUtil.getGroupId(methodCall: methodCall), BaseImpl(result: result))
Open_im_sdkQuitGroup(CommonUtil.getGid(methodCall: methodCall), BaseImpl(result: result))
}
func transferGroupOwner(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkTransferGroupOwner(CommonUtil.getGroupId(methodCall: methodCall), CommonUtil.getGroupUserId(methodCall: methodCall), BaseImpl(result: result))
Open_im_sdkTransferGroupOwner(CommonUtil.getGid(methodCall: methodCall), CommonUtil.getUid(methodCall: methodCall), BaseImpl(result: result))
}
func getGroupApplicationList(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
@ -64,11 +68,95 @@ public class GroupManager:NSObject{
}
func acceptGroupApplication(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkAcceptGroupApplication(CommonUtil.getGroupApplication(methodCall: methodCall), CommonUtil.getGroupReason(methodCall: methodCall), BaseImpl(result: result))
Open_im_sdkAcceptGroupApplication(CommonUtil.getGroupApplicationInfo(methodCall: methodCall), CommonUtil.getGroupOpReason(methodCall: methodCall), BaseImpl(result: result))
}
func refuseGroupApplication(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
Open_im_sdkRefuseGroupApplication(CommonUtil.getGroupApplication(methodCall: methodCall), CommonUtil.getGroupReason(methodCall: methodCall), BaseImpl(result: result))
Open_im_sdkRefuseGroupApplication(CommonUtil.getGroupApplicationInfo(methodCall: methodCall), CommonUtil.getGroupOpReason(methodCall: methodCall), BaseImpl(result: result))
}
func forceSyncApplyGroupRequest(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
Open_im_sdkForceSyncApplyGroupRequest()
}
func forceSyncGroupRequest(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
Open_im_sdkForceSyncGroupRequest()
}
func forceSyncJoinedGroup(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
Open_im_sdkForceSyncJoinedGroup()
}
func forceSyncJoinedGroupMember(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
Open_im_sdkForceSyncJoinedGroupMember()
}
}
public class GroupListener:NSObject,Open_im_sdkOnGroupListenerProtocol {
private let channel:FlutterMethodChannel
init(channel:FlutterMethodChannel) {
self.channel = channel
}
public func onApplicationProcessed(_ s: String?,s1: String?,i: Int?,s2: String?) {
let values: NSMutableDictionary = NSMutableDictionary(capacity: 0)
values.setValue(s, forKey: "groupId")
values.setValue(s1, forKey: "opUser")
values.setValue(i, forKey: "agreeOrReject")
values.setValue(s2, forKey: "opReason")
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onApplicationProcessed", errCode: nil, errMsg: nil, data: values)
}
public func onGroupCreated(_ s: String?) {
let values: NSMutableDictionary = NSMutableDictionary(capacity: 0)
values.setValue(s, forKey: "groupId")
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onGroupCreated", errCode: nil, errMsg: nil, data: values)
}
public func onGroupInfoChanged(_ s: String?,s1: String?) {
let values: NSMutableDictionary = NSMutableDictionary(capacity: 0)
values.setValue(s, forKey: "groupId")
values.setValue(s1, forKey: "groupInfo")
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onGroupInfoChanged", errCode: nil, errMsg: nil, data: values)
}
public func onMemberEnter(_ s: String?,s1: String?) {
let values: NSMutableDictionary = NSMutableDictionary(capacity: 0)
values.setValue(s, forKey: "groupId")
values.setValue(s1, forKey: "memberList")
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onMemberEnter", errCode: nil, errMsg: nil, data: values)
}
public func onMemberInvited(_ s: String?,s1: String?,s2: String?) {
let values: NSMutableDictionary = NSMutableDictionary(capacity: 0)
values.setValue(s, forKey: "groupId")
values.setValue(s1, forKey: "opUser")
values.setValue(s2, forKey: "memberList")
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onMemberInvited", errCode: nil, errMsg: nil, data: values)
}
public func onMemberKicked(_ s: String?,s1: String?,s2: String?) {
let values: NSMutableDictionary = NSMutableDictionary(capacity: 0)
values.setValue(s, forKey: "groupId")
values.setValue(s1, forKey: "opUser")
values.setValue(s2, forKey: "memberList")
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onMemberKicked", errCode: nil, errMsg: nil, data: values)
}
public func onMemberLeave(_ s: String?,s1: String?) {
let values: NSMutableDictionary = NSMutableDictionary(capacity: 0)
values.setValue(s, forKey: "groupId")
values.setValue(s1, forKey: "member")
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onMemberLeave", errCode: nil, errMsg: nil, data: values)
}
public func onReceiveJoinApplication(_ s: String?,s1: String?,s2: String?) {
let values: NSMutableDictionary = NSMutableDictionary(capacity: 0)
values.setValue(s, forKey: "groupId")
values.setValue(s1, forKey: "member")
values.setValue(s2, forKey: "opReason")
CommonUtil.emitEvent(channel: channel, method: "groupListener", type: "onReceiveJoinApplication", errCode: nil, errMsg: nil, data: values)
}
}

@ -17,7 +17,7 @@ public class IMMananger:NSObject{
}
func initSDK(methodCall: FlutterMethodCall, result: FlutterResult){
Open_im_sdkInitSDK(CommonUtil.getSDKJsonParam(methodCall: methodCall), SDKListenerImpl(channel: self.channel))
Open_im_sdkInitSDK(CommonUtil.getSDKJsonParam(methodCall: methodCall), SDKListener(channel: self.channel))
}
func login(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
@ -33,7 +33,7 @@ public class IMMananger:NSObject{
}
func getLoginUid(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
DispatchQueue.main.async { result(Open_im_sdkGetLoginUser()) }
DispatchQueue.main.async { result(Open_im_sdkGetLoginUid()) }
}
func getUsersInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
@ -47,9 +47,13 @@ public class IMMananger:NSObject{
func forceSyncLoginUerInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
Open_im_sdkForceSyncLoginUerInfo()
}
func forceReConn(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
Open_im_sdkForceReConn()
}
}
public class SDKListenerImpl:NSObject,Open_im_sdkIMSDKListenerProtocol {
public class SDKListener:NSObject,Open_im_sdkIMSDKListenerProtocol {
private let channel:FlutterMethodChannel
init(channel:FlutterMethodChannel) {

@ -12,20 +12,17 @@ public class MessageManager:NSObject{
private let KEY_ID: String = "id"
private let channel:FlutterMethodChannel
private let listeners: NSMutableDictionary = NSMutableDictionary(capacity: 0)
private var sendMsgProgressListener: SendMsgProgressListener?
init(channel:FlutterMethodChannel) {
self.channel = channel
}
func addAdvancedMsgListener(methodCall: FlutterMethodCall, result: FlutterResult){
if sendMsgProgressListener == nil {
sendMsgProgressListener = SendMsgProgressListener(channel: channel)
}
let d = methodCall.arguments as! NSDictionary
let key = d.value(forKey: KEY_ID) as! String
if !listeners.allKeys.contains(where: {($0 as! String).compare(key) == .orderedSame}) {
let lis = AdvancedMsgListenerImpl(channel: channel, id: key)
let lis = AdvancedMsgListener(channel: channel, id: key)
let k = methodCall.arguments as! NSDictionary
let s = k.value(forKey: KEY_ID) as! String
listeners.setValue(lis, forKey: s)
@ -38,17 +35,18 @@ public class MessageManager:NSObject{
let k = methodCall.arguments as! NSDictionary
let s = k.value(forKey: KEY_ID) as! String
if listeners.allKeys.contains(where: {($0 as! String).compare(s) == .orderedSame}) {
let lis = listeners.value(forKey: s) as! AdvancedMsgListenerImpl
let lis = listeners.value(forKey: s) as! AdvancedMsgListener
listeners.removeObject(forKey: s)
Open_im_sdkRemoveAdvancedMsgListener(lis)
}
}
func sendMessage(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
let sendMsgProgressListener: SendMsgProgressListener= SendMsgProgressListener(channel: channel)
sendMsgProgressListener?.setCall(methodCall: methodCall)
sendMsgProgressListener?.setResult(result: result)
print("===============sendMessage===============")
Open_im_sdkSendMessage(sendMsgProgressListener, CommonUtil.getSendMessageContent(methodCall: methodCall), CommonUtil.getSendMessageReceiver(methodCall: methodCall), CommonUtil.getSendMessageGroupId(methodCall: methodCall), CommonUtil.getSendMessageOnlineOnly(methodCall: methodCall))
Open_im_sdkSendMessage(sendMsgProgressListener, CommonUtil.getSendMessageContent(methodCall: methodCall), CommonUtil.getSendMessageReceiver(methodCall: methodCall), CommonUtil.geSendMessageGroupId(methodCall: methodCall), CommonUtil.getSendMessageOnlineOnly(methodCall: methodCall))
}
func getHistoryMessageList(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
@ -79,6 +77,10 @@ public class MessageManager:NSObject{
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 createTextMessage(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
let prama = Open_im_sdkCreateTextMessage(CommonUtil.getMessageText(methodCall: methodCall))
DispatchQueue.main.async { result(prama) }
@ -119,6 +121,12 @@ 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 {
@ -149,7 +157,7 @@ public class SendMsgProgressListener:NSObject, Open_im_sdkSendMsgCallBackProtoco
print("=================onProgress============\nprogress:\(progress)");
values.setValue(CommonUtil.getSendMessageClientMsgID(methodCall: self.call!), forKey: "clientMsgID")
values.setValue(progress, forKey: "progress")
CommonUtil.emitEvent(channel: channel, method: "messageProgressListener", type: "onProgress", errCode: nil, errMsg: nil, data: values)
CommonUtil.emitEvent(channel: channel, method: "msgSendProgressListener", type: "onProgress", errCode: nil, errMsg: nil, data: values)
}
public func onSuccess(_ data: String?) {
@ -159,7 +167,7 @@ public class SendMsgProgressListener:NSObject, Open_im_sdkSendMsgCallBackProtoco
}
public class AdvancedMsgListenerImpl: NSObject, Open_im_sdkOnAdvancedMsgListenerProtocol {
public class AdvancedMsgListener: NSObject, Open_im_sdkOnAdvancedMsgListenerProtocol {
private let channel: FlutterMethodChannel
private let values: NSMutableDictionary = NSMutableDictionary(capacity: 0)

@ -58,6 +58,8 @@ public class SwiftFlutterOpenimSdkPlugin: NSObject, FlutterPlugin {
imManager.setSelfInfo(methodCall: call, result: result)
}else if method == "forceSyncLoginUerInfo" {
imManager.forceSyncLoginUerInfo(methodCall: call, result: result)
}}else if method == "forceReConn" {
imManager.forceReConn(methodCall: call, result: result)
}else{
print("Handle MethodName Error: IMManager method: \(method) not found")
}
@ -79,8 +81,6 @@ public class SwiftFlutterOpenimSdkPlugin: NSObject, FlutterPlugin {
conversationManager.setConversationDraft(methodCall: call, result: result)
}else if method == "pinConversation" {
conversationManager.pinConversation(methodCall: call, result: result)
}else if method == "getTotalUnreadMsgCount" {
conversationManager.getTotalUnreadMsgCount(methodCall: call, result: result)
}else{
print("Handle MethodName Error: ConversationManager method: \(method) not found")
}
@ -163,6 +163,8 @@ public class SwiftFlutterOpenimSdkPlugin: NSObject, FlutterPlugin {
messageManager.createMergerMessage(methodCall: call, result: result)
}else if method == "createForwardMessage" {
messageManager.createForwardMessage(methodCall: call, result: result)
}else if method == "getTotalUnreadMsgCount" {
conversationManager.getTotalUnreadMsgCount(methodCall: call, result: result)
}else{
print("Handle MethodName Error: MessageManager method: \(method) not found")
}
@ -198,6 +200,14 @@ public class SwiftFlutterOpenimSdkPlugin: NSObject, FlutterPlugin {
groupManager.acceptGroupApplication(methodCall: call, result: result)
}else if method == "refuseGroupApplication" {
groupManager.refuseGroupApplication(methodCall: call, result: result)
}else if method == "forceSyncApplyGroupRequest" {
groupManager.forceSyncApplyGroupRequest(methodCall: call, result: result)
}else if method == "forceSyncGroupRequest" {
groupManager.forceSyncGroupRequest(methodCall: call, result: result)
}else if method == "forceSyncJoinedGroup" {
groupManager.forceSyncJoinedGroup(methodCall: call, result: result)
}else if method == "forceSyncJoinedGroupMember" {
groupManager.forceSyncJoinedGroupMember(methodCall: call, result: result)
}else{
print("Handle MethodName Error: MessageManager method: \(method) not found")
}

Loading…
Cancel
Save