Compare commits
5 Commits
2bdf5a4507
...
0.0.42
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
74aa08a4b5 | ||
|
|
39fb9b5cb3 | ||
|
|
6bcf3de467 | ||
|
|
c341cb5a7c | ||
|
|
9b219b92b8 |
@@ -1,73 +1,73 @@
|
|||||||
group 'io.openim.flutter_openim_sdk'
|
group 'io.openim.flutter_openim_sdk'
|
||||||
version '1.0'
|
version '1.0'
|
||||||
|
|
||||||
def dir = getCurrentProjectDir()
|
def dir = getCurrentProjectDir()
|
||||||
|
|
||||||
def getCurrentProjectDir() {
|
def getCurrentProjectDir() {
|
||||||
String result = ""
|
String result = ""
|
||||||
rootProject.allprojects { project ->
|
rootProject.allprojects { project ->
|
||||||
if (project.properties.get("name").toString() == "flutter_openim_sdk") {
|
if (project.properties.get("name").toString() == "flutter_openim_sdk") {
|
||||||
result = project.properties.get("projectDir").toString()
|
result = project.properties.get("projectDir").toString()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
buildscript {
|
buildscript {
|
||||||
ext.kotlin_version = '2.0.20'
|
ext.kotlin_version = '2.0.20'
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
maven { url 'https://maven.aliyun.com/repository/public' }
|
maven { url 'https://maven.aliyun.com/repository/public' }
|
||||||
maven { url 'https://maven.aliyun.com/repository/central' }
|
maven { url 'https://maven.aliyun.com/repository/central' }
|
||||||
maven { url 'https://maven.aliyun.com/nexus/content/repositories/google' }
|
maven { url 'https://maven.aliyun.com/nexus/content/repositories/google' }
|
||||||
maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
|
maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
|
||||||
google()
|
google()
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath 'com.android.tools.build:gradle:7.3.1'
|
classpath 'com.android.tools.build:gradle:7.3.1'
|
||||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
rootProject.allprojects {
|
rootProject.allprojects {
|
||||||
repositories {
|
repositories {
|
||||||
// 本地 AAR 调试配置 - 使用 rootProject.projectDir 确保路径正确
|
// 本地 AAR 调试配置 - 使用 rootProject.projectDir 确保路径正确
|
||||||
// maven { url 'file://' + rootProject.projectDir.absolutePath + '/local-maven' }
|
// maven { url 'file://' + rootProject.projectDir.absolutePath + '/local-maven' }
|
||||||
|
|
||||||
maven {
|
maven {
|
||||||
url 'http://192.168.77.132:8081/repository/mvn2-group'
|
url 'http://192.168.77.132:8081/repository/mvn2-group'
|
||||||
allowInsecureProtocol true
|
allowInsecureProtocol true
|
||||||
}
|
}
|
||||||
google()
|
google()
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
apply plugin: 'com.android.library'
|
apply plugin: 'com.android.library'
|
||||||
apply plugin: 'kotlin-android'
|
apply plugin: 'kotlin-android'
|
||||||
|
|
||||||
android {
|
android {
|
||||||
namespace 'io.openim.flutter_openim_sdk'
|
namespace 'io.openim.flutter_openim_sdk'
|
||||||
compileSdkVersion 34
|
compileSdkVersion 34
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
minSdkVersion 21
|
minSdkVersion 21
|
||||||
ndk {
|
ndk {
|
||||||
abiFilters "arm64-v8a","x86" // 根据需要添加其他 ABI
|
abiFilters "arm64-v8a","x86" // 根据需要添加其他 ABI
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
compileOptions {
|
compileOptions {
|
||||||
sourceCompatibility JavaVersion.VERSION_1_8
|
sourceCompatibility JavaVersion.VERSION_1_8
|
||||||
targetCompatibility JavaVersion.VERSION_1_8
|
targetCompatibility JavaVersion.VERSION_1_8
|
||||||
}
|
}
|
||||||
kotlinOptions {
|
kotlinOptions {
|
||||||
jvmTarget = '1.8'
|
jvmTarget = '1.8'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
//implementation 'com.openim:sdkcore:1.0.15-local'
|
//implementation 'com.openim:sdkcore:1.0.15-local'
|
||||||
implementation 'com.openim:sdkcore:1.0.19'
|
implementation 'com.openim:sdkcore:1.0.24'
|
||||||
}
|
}
|
||||||
@@ -1,103 +1,113 @@
|
|||||||
package io.openim.flutter_openim_sdk.manager;
|
package io.openim.flutter_openim_sdk.manager;
|
||||||
|
|
||||||
import io.flutter.plugin.common.MethodCall;
|
import io.flutter.plugin.common.MethodCall;
|
||||||
import io.flutter.plugin.common.MethodChannel;
|
import io.flutter.plugin.common.MethodChannel;
|
||||||
import io.openim.flutter_openim_sdk.listener.OnBaseListener;
|
import io.openim.flutter_openim_sdk.listener.OnBaseListener;
|
||||||
import io.openim.flutter_openim_sdk.listener.OnChannelListener;
|
import io.openim.flutter_openim_sdk.listener.OnChannelListener;
|
||||||
import open_im_sdk.Open_im_sdk;
|
import open_im_sdk.Open_im_sdk;
|
||||||
|
|
||||||
public class ChannelManager extends BaseManager {
|
public class ChannelManager extends BaseManager {
|
||||||
|
|
||||||
public void setChannelListener(MethodCall methodCall, MethodChannel.Result result) {
|
public void setChannelListener(MethodCall methodCall, MethodChannel.Result result) {
|
||||||
Open_im_sdk.setChannelListener(new OnChannelListener());
|
Open_im_sdk.setChannelListener(new OnChannelListener());
|
||||||
|
|
||||||
result.success(null);
|
result.success(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void getChannelMembersInfo(MethodCall methodCall, MethodChannel.Result result) {
|
public void getChannelMembersInfo(MethodCall methodCall, MethodChannel.Result result) {
|
||||||
Open_im_sdk.getSpecifiedChannelMembersInfo(
|
Open_im_sdk.getSpecifiedChannelMembersInfo(
|
||||||
new OnBaseListener(result, methodCall),
|
new OnBaseListener(result, methodCall),
|
||||||
value(methodCall, "operationID"),
|
value(methodCall, "operationID"),
|
||||||
value(methodCall, "channelID"),
|
value(methodCall, "channelID"),
|
||||||
jsonValue(methodCall, "userIDList")
|
jsonValue(methodCall, "userIDList")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void getChannelMemberList(MethodCall methodCall, MethodChannel.Result result) {
|
public void getChannelMemberList(MethodCall methodCall, MethodChannel.Result result) {
|
||||||
Open_im_sdk.getChannelMemberList(
|
Open_im_sdk.getChannelMemberList(
|
||||||
new OnBaseListener(result, methodCall),
|
new OnBaseListener(result, methodCall),
|
||||||
value(methodCall, "operationID"),
|
value(methodCall, "operationID"),
|
||||||
value(methodCall, "channelID"),
|
value(methodCall, "channelID"),
|
||||||
value(methodCall, "filter"),
|
value(methodCall, "filter"),
|
||||||
value(methodCall, "offset"),
|
value(methodCall, "offset"),
|
||||||
value(methodCall, "count")
|
value(methodCall, "count")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void getChannelsInfo(MethodCall methodCall, MethodChannel.Result result) {
|
public void getChannelsInfo(MethodCall methodCall, MethodChannel.Result result) {
|
||||||
Open_im_sdk.getSpecifiedChannelsInfo(
|
Open_im_sdk.getSpecifiedChannelsInfo(
|
||||||
new OnBaseListener(result, methodCall),
|
new OnBaseListener(result, methodCall),
|
||||||
value(methodCall, "operationID"),
|
value(methodCall, "operationID"),
|
||||||
jsonValue(methodCall, "channelIDList")
|
jsonValue(methodCall, "channelIDList")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void joinChannel(MethodCall methodCall, MethodChannel.Result result) {
|
public void joinChannel(MethodCall methodCall, MethodChannel.Result result) {
|
||||||
Open_im_sdk.joinChannel(
|
Open_im_sdk.joinChannel(
|
||||||
new OnBaseListener(result, methodCall),
|
new OnBaseListener(result, methodCall),
|
||||||
value(methodCall, "operationID"),
|
value(methodCall, "operationID"),
|
||||||
value(methodCall, "channelID"),
|
value(methodCall, "channelID"),
|
||||||
value(methodCall, "reason"),
|
value(methodCall, "reason"),
|
||||||
value(methodCall, "joinSource"),
|
value(methodCall, "joinSource"),
|
||||||
value(methodCall, "ex")
|
value(methodCall, "ex")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void quitChannel(MethodCall methodCall, MethodChannel.Result result) {
|
public void quitChannel(MethodCall methodCall, MethodChannel.Result result) {
|
||||||
Open_im_sdk.quitChannel(
|
Open_im_sdk.quitChannel(
|
||||||
new OnBaseListener(result, methodCall),
|
new OnBaseListener(result, methodCall),
|
||||||
value(methodCall, "operationID"),
|
value(methodCall, "operationID"),
|
||||||
value(methodCall, "channelID")
|
value(methodCall, "channelID")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void changeChannelMute(MethodCall methodCall, MethodChannel.Result result) {
|
public void changeChannelMute(MethodCall methodCall, MethodChannel.Result result) {
|
||||||
Open_im_sdk.changeChannelMute(
|
Open_im_sdk.changeChannelMute(
|
||||||
new OnBaseListener(result, methodCall),
|
new OnBaseListener(result, methodCall),
|
||||||
value(methodCall, "operationID"),
|
value(methodCall, "operationID"),
|
||||||
value(methodCall, "channelID"),
|
value(methodCall, "channelID"),
|
||||||
value(methodCall, "mute")
|
value(methodCall, "mute")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void changeChannelMemberMute(MethodCall methodCall, MethodChannel.Result result) {
|
public void changeChannelMemberMute(MethodCall methodCall, MethodChannel.Result result) {
|
||||||
Open_im_sdk.changeChannelMemberMute(
|
Open_im_sdk.changeChannelMemberMute(
|
||||||
new OnBaseListener(result, methodCall),
|
new OnBaseListener(result, methodCall),
|
||||||
value(methodCall, "operationID"),
|
value(methodCall, "operationID"),
|
||||||
value(methodCall, "channelID"),
|
value(methodCall, "channelID"),
|
||||||
value(methodCall, "userID"),
|
value(methodCall, "userID"),
|
||||||
int2long(methodCall, "seconds")
|
int2long(methodCall, "seconds")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void isJoinChannel(MethodCall methodCall, MethodChannel.Result result) {
|
public void isJoinChannel(MethodCall methodCall, MethodChannel.Result result) {
|
||||||
Open_im_sdk.isJoinChannel(new OnBaseListener(result, methodCall),
|
Open_im_sdk.isJoinChannel(new OnBaseListener(result, methodCall),
|
||||||
value(methodCall, "operationID"),
|
value(methodCall, "operationID"),
|
||||||
value(methodCall, "channelID")
|
value(methodCall, "channelID")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void getUsersInChannel(MethodCall methodCall, MethodChannel.Result result) {
|
public void getUsersInChannel(MethodCall methodCall, MethodChannel.Result result) {
|
||||||
Open_im_sdk.getUsersInChannel(new OnBaseListener(result, methodCall),
|
Open_im_sdk.getUsersInChannel(new OnBaseListener(result, methodCall),
|
||||||
value(methodCall, "operationID"),
|
value(methodCall, "operationID"),
|
||||||
value(methodCall, "channelID"),
|
value(methodCall, "channelID"),
|
||||||
jsonValue(methodCall, "userIDs")
|
jsonValue(methodCall, "userIDs")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void getChannelHistoryMessages(MethodCall methodCall, MethodChannel.Result result) {
|
||||||
|
Open_im_sdk.getChannelHistoryMessages(
|
||||||
|
new OnBaseListener(result, methodCall),
|
||||||
|
value(methodCall, "operationID"),
|
||||||
|
value(methodCall, "channelID"),
|
||||||
|
value(methodCall, "count"),
|
||||||
|
int2long(methodCall, "sinceSeq")
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1,101 +1,106 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
import OpenIMCore
|
import OpenIMCore
|
||||||
|
|
||||||
public class ChannelManager: BaseServiceManager {
|
public class ChannelManager: BaseServiceManager {
|
||||||
|
|
||||||
public override func registerHandlers() {
|
public override func registerHandlers() {
|
||||||
super.registerHandlers()
|
super.registerHandlers()
|
||||||
|
|
||||||
// self["changeChannelMemberMute"] = changeChannelMemberMute
|
// self["changeChannelMemberMute"] = changeChannelMemberMute
|
||||||
// self["changeChannelMute"] = changeChannelMute
|
// self["changeChannelMute"] = changeChannelMute
|
||||||
|
|
||||||
// self["getChannelMemberList"] = getChannelMemberList
|
// self["getChannelMemberList"] = getChannelMemberList
|
||||||
|
|
||||||
|
|
||||||
self["getChannelMembersInfo"] = getChannelMembersInfo
|
self["getChannelMembersInfo"] = getChannelMembersInfo
|
||||||
self["getChannelsInfo"] = getChannelsInfo
|
self["getChannelsInfo"] = getChannelsInfo
|
||||||
|
|
||||||
|
|
||||||
self["getUsersInChannel"] = getUsersInChannel
|
self["getUsersInChannel"] = getUsersInChannel
|
||||||
self["isJoinChannel"] = isJoinChannel
|
self["getChannelHistoryMessages"] = getChannelHistoryMessages
|
||||||
self["joinChannel"] = joinChannel
|
self["isJoinChannel"] = isJoinChannel
|
||||||
self["quitChannel"] = quitChannel
|
self["joinChannel"] = joinChannel
|
||||||
self["setChannelListener"] = setChannelListener
|
self["quitChannel"] = quitChannel
|
||||||
|
self["setChannelListener"] = setChannelListener
|
||||||
}
|
|
||||||
|
}
|
||||||
// func changeChannelMemberMute(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
|
||||||
// Open_im_sdkChangeChannelMemberMute(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "channelID"], methodCall[string:"userID"], methodCall[int:"seconds"])
|
// func changeChannelMemberMute(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
||||||
// }
|
// Open_im_sdkChangeChannelMemberMute(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "channelID"], methodCall[string:"userID"], methodCall[int:"seconds"])
|
||||||
//
|
// }
|
||||||
// func changeChannelMute(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
//
|
||||||
// Open_im_sdkChangeChannelMute(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "channelID"], methodCall[bool: "mute"])
|
// func changeChannelMute(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
||||||
// }
|
// Open_im_sdkChangeChannelMute(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "channelID"], methodCall[bool: "mute"])
|
||||||
//
|
// }
|
||||||
// func getChannelMemberList(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
//
|
||||||
// Open_im_sdkGetChannelMemberList(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "channelID"], methodCall[int32: "filter"],
|
// func getChannelMemberList(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
||||||
// methodCall[int32: "offset"], methodCall[int32: "count"])
|
// Open_im_sdkGetChannelMemberList(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "channelID"], methodCall[int32: "filter"],
|
||||||
// }
|
// methodCall[int32: "offset"], methodCall[int32: "count"])
|
||||||
|
// }
|
||||||
func getChannelMembersInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
|
||||||
Open_im_sdkGetSpecifiedChannelMembersInfo(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "channelID"], methodCall[jsonString: "userIDList"])
|
func getChannelMembersInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
||||||
}
|
Open_im_sdkGetSpecifiedChannelMembersInfo(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "channelID"], methodCall[jsonString: "userIDList"])
|
||||||
|
}
|
||||||
func getChannelsInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
|
||||||
Open_im_sdkGetSpecifiedChannelsInfo(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "channelIDList"])
|
func getChannelsInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
||||||
}
|
Open_im_sdkGetSpecifiedChannelsInfo(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "channelIDList"])
|
||||||
|
}
|
||||||
func getUsersInChannel(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
|
||||||
Open_im_sdkGetUsersInChannel(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "channelID"],
|
func getUsersInChannel(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
||||||
methodCall[jsonString: "userIDs"])
|
Open_im_sdkGetUsersInChannel(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "channelID"],
|
||||||
}
|
methodCall[jsonString: "userIDs"])
|
||||||
|
}
|
||||||
func isJoinChannel(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
|
||||||
Open_im_sdkIsJoinChannel(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "channelID"])
|
func getChannelHistoryMessages(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
||||||
}
|
Open_im_sdkGetChannelHistoryMessages(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "channelID"], methodCall[int: "count"], methodCall[int64: "sinceSeq"])
|
||||||
|
}
|
||||||
func joinChannel(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
|
||||||
Open_im_sdkJoinChannel(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "channelID"], methodCall[string:
|
func isJoinChannel(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
||||||
"reason"], methodCall[int32: "joinSource"], methodCall[jsonString: "ex"])
|
Open_im_sdkIsJoinChannel(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "channelID"])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func joinChannel(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
||||||
func quitChannel(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
Open_im_sdkJoinChannel(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "channelID"], methodCall[string:
|
||||||
Open_im_sdkQuitChannel(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "channelID"])
|
"reason"], methodCall[int32: "joinSource"], methodCall[jsonString: "ex"])
|
||||||
}
|
}
|
||||||
|
|
||||||
func setChannelListener(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
|
||||||
Open_im_sdkSetChannelListener(ChannelListener(channel: channel))
|
func quitChannel(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
||||||
callBack(result)
|
Open_im_sdkQuitChannel(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "channelID"])
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
func setChannelListener(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
||||||
public class ChannelListener: NSObject, Open_im_sdk_callbackOnChannelListenerProtocol {
|
Open_im_sdkSetChannelListener(ChannelListener(channel: channel))
|
||||||
|
callBack(result)
|
||||||
private let channel: FlutterMethodChannel
|
}
|
||||||
|
}
|
||||||
init(channel: FlutterMethodChannel) {
|
|
||||||
self.channel = channel
|
public class ChannelListener: NSObject, Open_im_sdk_callbackOnChannelListenerProtocol {
|
||||||
}
|
|
||||||
|
private let channel: FlutterMethodChannel
|
||||||
public func onChannelDismissed(_ s: String?) {
|
|
||||||
CommonUtil.emitEvent(channel: channel, method: "channelListener", type: "onChannelDismissed", errCode: nil, errMsg: nil, data: s)
|
init(channel: FlutterMethodChannel) {
|
||||||
}
|
self.channel = channel
|
||||||
|
}
|
||||||
public func onChannelInfoChanged(_ s: String?) {
|
|
||||||
CommonUtil.emitEvent(channel: channel, method: "channelListener", type: "onChannelInfoChanged", errCode: nil, errMsg: nil, data: s)
|
public func onChannelDismissed(_ s: String?) {
|
||||||
}
|
CommonUtil.emitEvent(channel: channel, method: "channelListener", type: "onChannelDismissed", errCode: nil, errMsg: nil, data: s)
|
||||||
|
}
|
||||||
public func onChannelMemberAdded(_ s: String?) {
|
|
||||||
CommonUtil.emitEvent(channel: channel, method: "channelListener", type: "onChannelMemberAdded", errCode: nil, errMsg: nil, data: s)
|
public func onChannelInfoChanged(_ s: String?) {
|
||||||
}
|
CommonUtil.emitEvent(channel: channel, method: "channelListener", type: "onChannelInfoChanged", errCode: nil, errMsg: nil, data: s)
|
||||||
|
}
|
||||||
public func onChannelMemberDeleted(_ s: String?) {
|
|
||||||
CommonUtil.emitEvent(channel: channel, method: "channelListener", type: "onChannelMemberDeleted", errCode: nil, errMsg: nil, data: s)
|
public func onChannelMemberAdded(_ s: String?) {
|
||||||
}
|
CommonUtil.emitEvent(channel: channel, method: "channelListener", type: "onChannelMemberAdded", errCode: nil, errMsg: nil, data: s)
|
||||||
|
}
|
||||||
public func onChannelMemberInfoChanged(_ s: String?) {
|
|
||||||
CommonUtil.emitEvent(channel: channel, method: "channelListener", type: "onChannelMemberInfoChanged", errCode: nil, errMsg: nil, data: s)
|
public func onChannelMemberDeleted(_ s: String?) {
|
||||||
}
|
CommonUtil.emitEvent(channel: channel, method: "channelListener", type: "onChannelMemberDeleted", errCode: nil, errMsg: nil, data: s)
|
||||||
|
}
|
||||||
}
|
|
||||||
|
public func onChannelMemberInfoChanged(_ s: String?) {
|
||||||
|
CommonUtil.emitEvent(channel: channel, method: "channelListener", type: "onChannelMemberInfoChanged", errCode: nil, errMsg: nil, data: s)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,35 +1,35 @@
|
|||||||
#
|
#
|
||||||
# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html.
|
# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html.
|
||||||
# Run `pod lib lint flutter_openim_sdk.podspec` to validate before publishing.
|
# Run `pod lib lint flutter_openim_sdk.podspec` to validate before publishing.
|
||||||
#
|
#
|
||||||
Pod::Spec.new do |s|
|
Pod::Spec.new do |s|
|
||||||
s.name = 'flutter_openim_sdk'
|
s.name = 'flutter_openim_sdk'
|
||||||
s.version = '0.0.14'
|
s.version = '0.0.18'
|
||||||
s.summary = 'A new Flutter project.'
|
s.summary = 'A new Flutter project.'
|
||||||
s.description = <<-DESC
|
s.description = <<-DESC
|
||||||
A new Flutter project.
|
A new Flutter project.
|
||||||
DESC
|
DESC
|
||||||
s.homepage = 'http://example.com'
|
s.homepage = 'http://example.com'
|
||||||
s.license = { :file => '../LICENSE' }
|
s.license = { :file => '../LICENSE' }
|
||||||
s.author = { 'Your Company' => 'email@example.com' }
|
s.author = { 'Your Company' => 'email@example.com' }
|
||||||
s.source = { :path => '.' }
|
s.source = { :path => '.' }
|
||||||
s.source_files = 'Classes/**/*'
|
s.source_files = 'Classes/**/*'
|
||||||
s.dependency 'Flutter'
|
s.dependency 'Flutter'
|
||||||
s.platform = :ios, '13.0'
|
s.platform = :ios, '13.0'
|
||||||
|
|
||||||
#s.ios.vendored_frameworks = 'frameworks/*.xcframework'
|
#s.ios.vendored_frameworks = 'frameworks/*.xcframework'
|
||||||
#s.vendored_frameworks = 'frameworks/*.xcframework'
|
#s.vendored_frameworks = 'frameworks/*.xcframework'
|
||||||
s.dependency 'openim_sdk_core_ios','0.14.0'
|
s.dependency 'openim_sdk_core_ios','0.18.0'
|
||||||
s.static_framework = true
|
s.static_framework = true
|
||||||
s.library = 'resolv'
|
s.library = 'resolv'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# s.vendored_frameworks = 'Framework/*.xcframework'
|
# s.vendored_frameworks = 'Framework/*.xcframework'
|
||||||
# Flutter.framework does not contain a i386 slice.
|
# Flutter.framework does not contain a i386 slice.
|
||||||
s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386 arm64' }
|
s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386 arm64' }
|
||||||
s.swift_version = '5.0'
|
s.swift_version = '5.0'
|
||||||
|
|
||||||
s.resource_bundles = {'flutter_openim_sdk_privacy' => ['Resources/PrivacyInfo.xcprivacy']}
|
s.resource_bundles = {'flutter_openim_sdk_privacy' => ['Resources/PrivacyInfo.xcprivacy']}
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,319 +1,338 @@
|
|||||||
import 'dart:developer';
|
import 'dart:developer';
|
||||||
|
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:flutter_openim_sdk/flutter_openim_sdk.dart';
|
import 'package:flutter_openim_sdk/flutter_openim_sdk.dart';
|
||||||
|
|
||||||
class ChannelManager {
|
class ChannelManager {
|
||||||
MethodChannel _channel;
|
MethodChannel _channel;
|
||||||
late OnChannelListener listener;
|
late OnChannelListener listener;
|
||||||
|
|
||||||
ChannelManager(this._channel);
|
ChannelManager(this._channel);
|
||||||
|
|
||||||
/// Channel relationship listener
|
/// Channel relationship listener
|
||||||
Future setChannelListener(OnChannelListener listener) {
|
Future setChannelListener(OnChannelListener listener) {
|
||||||
this.listener = listener;
|
this.listener = listener;
|
||||||
return _channel.invokeMethod('setChannelListener', _buildParam({}));
|
return _channel.invokeMethod('setChannelListener', _buildParam({}));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Query channel member information
|
/// Query channel member information
|
||||||
/// [channelID] Channel ID
|
/// [channelID] Channel ID
|
||||||
/// [userIDList] List of user IDs
|
/// [userIDList] List of user IDs
|
||||||
Future<List<ChannelMembersInfo>> getChannelMembersInfo({
|
Future<List<ChannelMembersInfo>> getChannelMembersInfo({
|
||||||
required String channelID,
|
required String channelID,
|
||||||
required List<String> userIDList,
|
required List<String> userIDList,
|
||||||
String? operationID,
|
String? operationID,
|
||||||
}) =>
|
}) =>
|
||||||
_channel
|
_channel
|
||||||
.invokeMethod(
|
.invokeMethod(
|
||||||
'getChannelMembersInfo',
|
'getChannelMembersInfo',
|
||||||
_buildParam({
|
_buildParam({
|
||||||
'channelID': channelID,
|
'channelID': channelID,
|
||||||
'userIDList': userIDList,
|
'userIDList': userIDList,
|
||||||
"operationID": Utils.checkOperationID(operationID),
|
"operationID": Utils.checkOperationID(operationID),
|
||||||
}))
|
}))
|
||||||
.then((value) =>
|
.then((value) =>
|
||||||
Utils.toList(value, (map) => ChannelMembersInfo.fromJson(map)));
|
Utils.toList(value, (map) => ChannelMembersInfo.fromJson(map)));
|
||||||
|
|
||||||
/// Paginate and retrieve the channel member list
|
/// Paginate and retrieve the channel member list
|
||||||
/// [channelID] Channel ID
|
/// [channelID] Channel ID
|
||||||
/// [filter] Member filter (0: All, 1: Channel owner, 2: Administrator, 3: Regular member, 4: Admin + Regular member, 5: Channel owner + Admin)
|
/// [filter] Member filter (0: All, 1: Channel owner, 2: Administrator, 3: Regular member, 4: Admin + Regular member, 5: Channel owner + Admin)
|
||||||
/// [offset] Starting index
|
/// [offset] Starting index
|
||||||
/// [count] Total count
|
/// [count] Total count
|
||||||
Future<List<ChannelMembersInfo>> getChannelMemberList({
|
Future<List<ChannelMembersInfo>> getChannelMemberList({
|
||||||
required String channelID,
|
required String channelID,
|
||||||
int filter = 0,
|
int filter = 0,
|
||||||
int offset = 0,
|
int offset = 0,
|
||||||
int count = 0,
|
int count = 0,
|
||||||
String? operationID,
|
String? operationID,
|
||||||
}) =>
|
}) =>
|
||||||
_channel
|
_channel
|
||||||
.invokeMethod(
|
.invokeMethod(
|
||||||
'getChannelMemberList',
|
'getChannelMemberList',
|
||||||
_buildParam({
|
_buildParam({
|
||||||
'channelID': channelID,
|
'channelID': channelID,
|
||||||
'filter': filter,
|
'filter': filter,
|
||||||
'offset': offset,
|
'offset': offset,
|
||||||
'count': count,
|
'count': count,
|
||||||
'operationID': Utils.checkOperationID(operationID),
|
'operationID': Utils.checkOperationID(operationID),
|
||||||
}))
|
}))
|
||||||
.then((value) =>
|
.then((value) =>
|
||||||
Utils.toList(value, (map) => ChannelMembersInfo.fromJson(map)));
|
Utils.toList(value, (map) => ChannelMembersInfo.fromJson(map)));
|
||||||
|
|
||||||
// /// Paginate and retrieve the channel member list as a map
|
// /// Paginate and retrieve the channel member list as a map
|
||||||
// /// [channelID] Channel ID
|
// /// [channelID] Channel ID
|
||||||
// /// [filter] Member filter (0: All, 1: Channel owner, 2: Administrator, 3: Regular member, 4: Admin + Regular member, 5: Channel owner + Admin)
|
// /// [filter] Member filter (0: All, 1: Channel owner, 2: Administrator, 3: Regular member, 4: Admin + Regular member, 5: Channel owner + Admin)
|
||||||
// /// [offset] Starting index
|
// /// [offset] Starting index
|
||||||
// /// [count] Total count
|
// /// [count] Total count
|
||||||
// Future<List<dynamic>> getChannelMemberListMap({
|
// Future<List<dynamic>> getChannelMemberListMap({
|
||||||
// required String channelID,
|
// required String channelID,
|
||||||
// int filter = 0,
|
// int filter = 0,
|
||||||
// int offset = 0,
|
// int offset = 0,
|
||||||
// int count = 0,
|
// int count = 0,
|
||||||
// String? operationID,
|
// String? operationID,
|
||||||
// }) =>
|
// }) =>
|
||||||
// _channel
|
// _channel
|
||||||
// .invokeMethod(
|
// .invokeMethod(
|
||||||
// 'getChannelMemberList',
|
// 'getChannelMemberList',
|
||||||
// _buildParam({
|
// _buildParam({
|
||||||
// 'channelID': channelID,
|
// 'channelID': channelID,
|
||||||
// 'filter': filter,
|
// 'filter': filter,
|
||||||
// 'offset': offset,
|
// 'offset': offset,
|
||||||
// 'count': count,
|
// 'count': count,
|
||||||
// 'operationID': Utils.checkOperationID(operationID),
|
// 'operationID': Utils.checkOperationID(operationID),
|
||||||
// }))
|
// }))
|
||||||
// .then((value) => Utils.toListMap(value));
|
// .then((value) => Utils.toListMap(value));
|
||||||
|
|
||||||
// /// Query the list of joined channels
|
// /// Query the list of joined channels
|
||||||
// Future<List<ChannelInfo>> getJoinedChannelList({String? operationID}) => _channel
|
// Future<List<ChannelInfo>> getJoinedChannelList({String? operationID}) => _channel
|
||||||
// .invokeMethod(
|
// .invokeMethod(
|
||||||
// 'getJoinedChannelList',
|
// 'getJoinedChannelList',
|
||||||
// _buildParam({
|
// _buildParam({
|
||||||
// 'operationID': Utils.checkOperationID(operationID),
|
// 'operationID': Utils.checkOperationID(operationID),
|
||||||
// }))
|
// }))
|
||||||
// .then((value) => Utils.toList(value, (map) => ChannelInfo.fromJson(map)));
|
// .then((value) => Utils.toList(value, (map) => ChannelInfo.fromJson(map)));
|
||||||
//
|
//
|
||||||
// Future<List<ChannelInfo>> getJoinedChannelListPage({String? operationID, int offset = 0, int count = 40}) => _channel
|
// Future<List<ChannelInfo>> getJoinedChannelListPage({String? operationID, int offset = 0, int count = 40}) => _channel
|
||||||
// .invokeMethod(
|
// .invokeMethod(
|
||||||
// 'getJoinedChannelListPage',
|
// 'getJoinedChannelListPage',
|
||||||
// _buildParam({
|
// _buildParam({
|
||||||
// 'offset': offset,
|
// 'offset': offset,
|
||||||
// 'count': count,
|
// 'count': count,
|
||||||
// 'operationID': Utils.checkOperationID(operationID),
|
// 'operationID': Utils.checkOperationID(operationID),
|
||||||
// }))
|
// }))
|
||||||
// .then((value) => Utils.toList(value, (map) => ChannelInfo.fromJson(map)));
|
// .then((value) => Utils.toList(value, (map) => ChannelInfo.fromJson(map)));
|
||||||
|
|
||||||
// /// Query the list of joined channels
|
// /// Query the list of joined channels
|
||||||
// Future<List<dynamic>> getJoinedChannelListMap({String? operationID}) =>
|
// Future<List<dynamic>> getJoinedChannelListMap({String? operationID}) =>
|
||||||
// _channel
|
// _channel
|
||||||
// .invokeMethod(
|
// .invokeMethod(
|
||||||
// 'getJoinedChannelList',
|
// 'getJoinedChannelList',
|
||||||
// _buildParam({
|
// _buildParam({
|
||||||
// 'operationID': Utils.checkOperationID(operationID),
|
// 'operationID': Utils.checkOperationID(operationID),
|
||||||
// }))
|
// }))
|
||||||
// .then((value) => Utils.toListMap(value));
|
// .then((value) => Utils.toListMap(value));
|
||||||
|
|
||||||
/// Check if the user has joined a channel
|
/// Check if the user has joined a channel
|
||||||
/// [channelID] Channel ID
|
/// [channelID] Channel ID
|
||||||
Future<bool> isJoinedChannel({
|
Future<bool> isJoinedChannel({
|
||||||
required String channelID,
|
required String channelID,
|
||||||
String? operationID,
|
String? operationID,
|
||||||
}) =>
|
}) =>
|
||||||
_channel
|
_channel
|
||||||
.invokeMethod(
|
.invokeMethod(
|
||||||
'isJoinChannel',
|
'isJoinChannel',
|
||||||
_buildParam({
|
_buildParam({
|
||||||
'channelID': channelID,
|
'channelID': channelID,
|
||||||
'operationID': Utils.checkOperationID(operationID),
|
'operationID': Utils.checkOperationID(operationID),
|
||||||
}))
|
}))
|
||||||
.then((value) => value == 'true' ? true : false);
|
.then((value) => value == 'true' ? true : false);
|
||||||
|
|
||||||
/// Query channel information
|
/// Query channel information
|
||||||
Future<List<ChannelInfo>> getChannelsInfo({
|
Future<List<ChannelInfo>> getChannelsInfo({
|
||||||
required List<String> channelIDList,
|
required List<String> channelIDList,
|
||||||
String? operationID,
|
String? operationID,
|
||||||
}) =>
|
}) =>
|
||||||
_channel
|
_channel
|
||||||
.invokeMethod(
|
.invokeMethod(
|
||||||
'getChannelsInfo',
|
'getChannelsInfo',
|
||||||
_buildParam({
|
_buildParam({
|
||||||
'channelIDList': channelIDList,
|
'channelIDList': channelIDList,
|
||||||
'operationID': Utils.checkOperationID(operationID),
|
'operationID': Utils.checkOperationID(operationID),
|
||||||
}))
|
}))
|
||||||
.then((value) =>
|
.then((value) =>
|
||||||
Utils.toList(value, (map) => ChannelInfo.fromJson(map)));
|
Utils.toList(value, (map) => ChannelInfo.fromJson(map)));
|
||||||
|
|
||||||
/// Apply to join a channel, requiring approval from an administrator or the channel.
|
/// Apply to join a channel, requiring approval from an administrator or the channel.
|
||||||
/// [joinSource] 2: Invited, 3: Searched, 4: Using a QR code
|
/// [joinSource] 2: Invited, 3: Searched, 4: Using a QR code
|
||||||
Future<dynamic> joinChannel(
|
Future<dynamic> joinChannel(
|
||||||
{required String channelID,
|
{required String channelID,
|
||||||
String? reason,
|
String? reason,
|
||||||
String? operationID,
|
String? operationID,
|
||||||
int joinSource = 3,
|
int joinSource = 3,
|
||||||
String? ex}) =>
|
String? ex}) =>
|
||||||
_channel.invokeMethod(
|
_channel.invokeMethod(
|
||||||
'joinChannel',
|
'joinChannel',
|
||||||
_buildParam({
|
_buildParam({
|
||||||
'channelID': channelID,
|
'channelID': channelID,
|
||||||
'reason': reason,
|
'reason': reason,
|
||||||
'joinSource': joinSource,
|
'joinSource': joinSource,
|
||||||
'ex': ex,
|
'ex': ex,
|
||||||
'operationID': Utils.checkOperationID(operationID),
|
'operationID': Utils.checkOperationID(operationID),
|
||||||
}));
|
}));
|
||||||
|
|
||||||
/// Exit a channel
|
/// Exit a channel
|
||||||
Future<dynamic> quitChannel({
|
Future<dynamic> quitChannel({
|
||||||
required String channelID,
|
required String channelID,
|
||||||
String? operationID,
|
String? operationID,
|
||||||
}) =>
|
}) =>
|
||||||
_channel.invokeMethod(
|
_channel.invokeMethod(
|
||||||
'quitChannel',
|
'quitChannel',
|
||||||
_buildParam({
|
_buildParam({
|
||||||
'channelID': channelID,
|
'channelID': channelID,
|
||||||
'operationID': Utils.checkOperationID(operationID),
|
'operationID': Utils.checkOperationID(operationID),
|
||||||
}));
|
}));
|
||||||
|
|
||||||
//
|
//
|
||||||
// /// Query a channel
|
// /// Query a channel
|
||||||
// /// [keywordList] Search keywords; currently, only one keyword is supported, and it cannot be empty.
|
// /// [keywordList] Search keywords; currently, only one keyword is supported, and it cannot be empty.
|
||||||
// /// [isSearchChannelID] Whether to search by channel ID (Note: cannot set both to false at the same time); defaults to false if not set.
|
// /// [isSearchChannelID] Whether to search by channel ID (Note: cannot set both to false at the same time); defaults to false if not set.
|
||||||
// /// [isSearchChannelName] Whether to search by channel name; defaults to false if not set.
|
// /// [isSearchChannelName] Whether to search by channel name; defaults to false if not set.
|
||||||
// Future<List<ChannelInfo>> searchChannels({
|
// Future<List<ChannelInfo>> searchChannels({
|
||||||
// List<String> keywordList = const [],
|
// List<String> keywordList = const [],
|
||||||
// bool isSearchChannelID = false,
|
// bool isSearchChannelID = false,
|
||||||
// bool isSearchChannelName = false,
|
// bool isSearchChannelName = false,
|
||||||
// String? operationID,
|
// String? operationID,
|
||||||
// }) =>
|
// }) =>
|
||||||
// _channel
|
// _channel
|
||||||
// .invokeMethod(
|
// .invokeMethod(
|
||||||
// 'searchChannels',
|
// 'searchChannels',
|
||||||
// _buildParam({
|
// _buildParam({
|
||||||
// 'searchParam': {
|
// 'searchParam': {
|
||||||
// 'keywordList': keywordList,
|
// 'keywordList': keywordList,
|
||||||
// 'isSearchChannelID': isSearchChannelID,
|
// 'isSearchChannelID': isSearchChannelID,
|
||||||
// 'isSearchChannelName': isSearchChannelName,
|
// 'isSearchChannelName': isSearchChannelName,
|
||||||
// },
|
// },
|
||||||
// 'operationID': Utils.checkOperationID(operationID),
|
// 'operationID': Utils.checkOperationID(operationID),
|
||||||
// }))
|
// }))
|
||||||
// .then((value) => Utils.toList(value, (map) => ChannelInfo.fromJson(map)));
|
// .then((value) => Utils.toList(value, (map) => ChannelInfo.fromJson(map)));
|
||||||
|
|
||||||
// /// Get a channel member list based on join time
|
// /// Get a channel member list based on join time
|
||||||
// Future<List<ChannelMembersInfo>> getChannelMemberListByJoinTime({
|
// Future<List<ChannelMembersInfo>> getChannelMemberListByJoinTime({
|
||||||
// required String channelID,
|
// required String channelID,
|
||||||
// int offset = 0,
|
// int offset = 0,
|
||||||
// int count = 0,
|
// int count = 0,
|
||||||
// int joinTimeBegin = 0,
|
// int joinTimeBegin = 0,
|
||||||
// int joinTimeEnd = 0,
|
// int joinTimeEnd = 0,
|
||||||
// List<String> filterUserIDList = const [],
|
// List<String> filterUserIDList = const [],
|
||||||
// String? operationID,
|
// String? operationID,
|
||||||
// }) =>
|
// }) =>
|
||||||
// _channel
|
// _channel
|
||||||
// .invokeMethod(
|
// .invokeMethod(
|
||||||
// 'getChannelMemberListByJoinTimeFilter',
|
// 'getChannelMemberListByJoinTimeFilter',
|
||||||
// _buildParam({
|
// _buildParam({
|
||||||
// 'channelID': channelID,
|
// 'channelID': channelID,
|
||||||
// 'offset': offset,
|
// 'offset': offset,
|
||||||
// 'count': count,
|
// 'count': count,
|
||||||
// 'joinTimeBegin': joinTimeBegin,
|
// 'joinTimeBegin': joinTimeBegin,
|
||||||
// 'joinTimeEnd': joinTimeEnd,
|
// 'joinTimeEnd': joinTimeEnd,
|
||||||
// 'excludeUserIDList': filterUserIDList,
|
// 'excludeUserIDList': filterUserIDList,
|
||||||
// 'operationID': Utils.checkOperationID(operationID),
|
// 'operationID': Utils.checkOperationID(operationID),
|
||||||
// }))
|
// }))
|
||||||
// .then((value) => Utils.toList(value, (map) => ChannelMembersInfo.fromJson(map)));
|
// .then((value) => Utils.toList(value, (map) => ChannelMembersInfo.fromJson(map)));
|
||||||
|
|
||||||
// /// Search for channel members
|
// /// Search for channel members
|
||||||
// /// [channelID] Channel ID
|
// /// [channelID] Channel ID
|
||||||
// /// [keywordList] Search keywords; currently, only one keyword is supported, and it cannot be empty.
|
// /// [keywordList] Search keywords; currently, only one keyword is supported, and it cannot be empty.
|
||||||
// /// [isSearchUserID] Whether to search by member ID
|
// /// [isSearchUserID] Whether to search by member ID
|
||||||
// /// [isSearchMemberNickname] Whether to search by member nickname
|
// /// [isSearchMemberNickname] Whether to search by member nickname
|
||||||
// /// [offset] Start index
|
// /// [offset] Start index
|
||||||
// /// [count] Total count to retrieve
|
// /// [count] Total count to retrieve
|
||||||
// Future<List<ChannelMembersInfo>> searchChannelMembers({
|
// Future<List<ChannelMembersInfo>> searchChannelMembers({
|
||||||
// required String channelID,
|
// required String channelID,
|
||||||
// List<String> keywordList = const [],
|
// List<String> keywordList = const [],
|
||||||
// bool isSearchUserID = false,
|
// bool isSearchUserID = false,
|
||||||
// bool isSearchMemberNickname = false,
|
// bool isSearchMemberNickname = false,
|
||||||
// int offset = 0,
|
// int offset = 0,
|
||||||
// int count = 40,
|
// int count = 40,
|
||||||
// String? operationID,
|
// String? operationID,
|
||||||
// }) =>
|
// }) =>
|
||||||
// _channel
|
// _channel
|
||||||
// .invokeMethod(
|
// .invokeMethod(
|
||||||
// 'searchChannelMembers',
|
// 'searchChannelMembers',
|
||||||
// _buildParam({
|
// _buildParam({
|
||||||
// 'searchParam': {
|
// 'searchParam': {
|
||||||
// 'channelID': channelID,
|
// 'channelID': channelID,
|
||||||
// 'keywordList': keywordList,
|
// 'keywordList': keywordList,
|
||||||
// 'isSearchUserID': isSearchUserID,
|
// 'isSearchUserID': isSearchUserID,
|
||||||
// 'isSearchMemberNickname': isSearchMemberNickname,
|
// 'isSearchMemberNickname': isSearchMemberNickname,
|
||||||
// 'offset': offset,
|
// 'offset': offset,
|
||||||
// 'count': count,
|
// 'count': count,
|
||||||
// },
|
// },
|
||||||
// 'operationID': Utils.checkOperationID(operationID),
|
// 'operationID': Utils.checkOperationID(operationID),
|
||||||
// }))
|
// }))
|
||||||
// .then((value) => Utils.toList(value, (map) => ChannelMembersInfo.fromJson(map)));
|
// .then((value) => Utils.toList(value, (map) => ChannelMembersInfo.fromJson(map)));
|
||||||
|
|
||||||
// /// Query a channel
|
// /// Query a channel
|
||||||
// /// [channelID] Channel ID
|
// /// [channelID] Channel ID
|
||||||
// /// [keywordList] Search keyword, currently only supports searching with one keyword, and it cannot be empty
|
// /// [keywordList] Search keyword, currently only supports searching with one keyword, and it cannot be empty
|
||||||
// /// [isSearchUserID] Whether to search member IDs with the keyword
|
// /// [isSearchUserID] Whether to search member IDs with the keyword
|
||||||
// /// [isSearchMemberNickname] Whether to search member nicknames with the keyword
|
// /// [isSearchMemberNickname] Whether to search member nicknames with the keyword
|
||||||
// /// [offset] Starting index
|
// /// [offset] Starting index
|
||||||
// /// [count] Total number to retrieve each time
|
// /// [count] Total number to retrieve each time
|
||||||
// Future<List<dynamic>> searchChannelMembersListMap({
|
// Future<List<dynamic>> searchChannelMembersListMap({
|
||||||
// required String channelID,
|
// required String channelID,
|
||||||
// List<String> keywordList = const [],
|
// List<String> keywordList = const [],
|
||||||
// bool isSearchUserID = false,
|
// bool isSearchUserID = false,
|
||||||
// bool isSearchMemberNickname = false,
|
// bool isSearchMemberNickname = false,
|
||||||
// int offset = 0,
|
// int offset = 0,
|
||||||
// int count = 40,
|
// int count = 40,
|
||||||
// String? operationID,
|
// String? operationID,
|
||||||
// }) =>
|
// }) =>
|
||||||
// _channel
|
// _channel
|
||||||
// .invokeMethod(
|
// .invokeMethod(
|
||||||
// 'searchChannelMembers',
|
// 'searchChannelMembers',
|
||||||
// _buildParam({
|
// _buildParam({
|
||||||
// 'searchParam': {
|
// 'searchParam': {
|
||||||
// 'channelID': channelID,
|
// 'channelID': channelID,
|
||||||
// 'keywordList': keywordList,
|
// 'keywordList': keywordList,
|
||||||
// 'isSearchUserID': isSearchUserID,
|
// 'isSearchUserID': isSearchUserID,
|
||||||
// 'isSearchMemberNickname': isSearchMemberNickname,
|
// 'isSearchMemberNickname': isSearchMemberNickname,
|
||||||
// 'offset': offset,
|
// 'offset': offset,
|
||||||
// 'count': count,
|
// 'count': count,
|
||||||
// },
|
// },
|
||||||
// 'operationID': Utils.checkOperationID(operationID),
|
// 'operationID': Utils.checkOperationID(operationID),
|
||||||
// }))
|
// }))
|
||||||
// .then((value) => Utils.toListMap(value));
|
// .then((value) => Utils.toListMap(value));
|
||||||
//
|
//
|
||||||
// /// Modify the ChannelMemberInfo ex field
|
// /// Modify the ChannelMemberInfo ex field
|
||||||
// Future<dynamic> setChannelMemberInfo({
|
// Future<dynamic> setChannelMemberInfo({
|
||||||
// required SetChannelMemberInfo channelMembersInfo,
|
// required SetChannelMemberInfo channelMembersInfo,
|
||||||
// String? operationID,
|
// String? operationID,
|
||||||
// }) =>
|
// }) =>
|
||||||
// _channel.invokeMethod(
|
// _channel.invokeMethod(
|
||||||
// 'setChannelMemberInfo',
|
// 'setChannelMemberInfo',
|
||||||
// _buildParam({
|
// _buildParam({
|
||||||
// 'info': channelMembersInfo.toJson(),
|
// 'info': channelMembersInfo.toJson(),
|
||||||
// 'operationID': Utils.checkOperationID(operationID),
|
// 'operationID': Utils.checkOperationID(operationID),
|
||||||
// }));
|
// }));
|
||||||
|
|
||||||
Future<dynamic> getUsersInChannel(
|
Future<dynamic> getUsersInChannel(
|
||||||
String channelID,
|
String channelID,
|
||||||
List<String> userIDs, {
|
List<String> userIDs, {
|
||||||
String? operationID,
|
String? operationID,
|
||||||
}) =>
|
}) =>
|
||||||
_channel.invokeMethod(
|
_channel.invokeMethod(
|
||||||
'getUsersInChannel',
|
'getUsersInChannel',
|
||||||
_buildParam({
|
_buildParam({
|
||||||
'channelID': channelID,
|
'channelID': channelID,
|
||||||
'userIDs': userIDs,
|
'userIDs': userIDs,
|
||||||
'operationID': Utils.checkOperationID(operationID),
|
'operationID': Utils.checkOperationID(operationID),
|
||||||
}));
|
}));
|
||||||
|
|
||||||
static Map _buildParam(Map<String, dynamic> param) {
|
/// Get channel short-term history messages
|
||||||
param["ManagerName"] = "channelManager";
|
/// [channelID] Channel ID
|
||||||
param = Utils.cleanMap(param);
|
/// [count] Number of messages to retrieve
|
||||||
log('param: $param');
|
/// [sinceSeq] Internal sequence cursor for pagination (0 for first page)
|
||||||
|
Future<dynamic> getChannelHistoryMessages({
|
||||||
return param;
|
required String channelID,
|
||||||
}
|
int count = 20,
|
||||||
}
|
int sinceSeq = 0,
|
||||||
|
String? operationID,
|
||||||
|
}) =>
|
||||||
|
_channel.invokeMethod(
|
||||||
|
'getChannelHistoryMessages',
|
||||||
|
_buildParam({
|
||||||
|
'channelID': channelID,
|
||||||
|
'count': count,
|
||||||
|
'sinceSeq': sinceSeq,
|
||||||
|
'operationID': Utils.checkOperationID(operationID),
|
||||||
|
}));
|
||||||
|
|
||||||
|
static Map _buildParam(Map<String, dynamic> param) {
|
||||||
|
param["ManagerName"] = "channelManager";
|
||||||
|
param = Utils.cleanMap(param);
|
||||||
|
log('param: $param');
|
||||||
|
|
||||||
|
return param;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user