You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
94 lines
4.2 KiB
94 lines
4.2 KiB
import Foundation
|
|
import OpenIMCore
|
|
|
|
public class UserManager: BaseServiceManager {
|
|
|
|
public override func registerHandlers() {
|
|
super.registerHandlers()
|
|
self["setUserListener"] = setUserListener
|
|
self["getUsersInfo"] = getUsersInfo
|
|
self["setSelfInfo"] = setSelfInfo
|
|
self["getSelfUserInfo"] = getSelfUserInfo
|
|
self["subscribeUsersStatus"] = subscribeUsersStatus
|
|
self["unsubscribeUsersStatus"] = unsubscribeUsersStatus
|
|
self["getSubscribeUsersStatus"] = getSubscribeUsersStatus
|
|
self["getUserStatus"] = getUserStatus
|
|
self["getUsersInfoWithCache"] = getUsersInfoWithCache
|
|
/*
|
|
self["setSelfInfoEx"] = setSelfInfoEx
|
|
*/
|
|
}
|
|
|
|
func setUserListener(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
|
|
Open_im_sdkSetUserListener(UserListener(channel: channel))
|
|
callBack(result)
|
|
}
|
|
|
|
func getUsersInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
|
Open_im_sdkGetUsersInfo(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "userIDList"])
|
|
}
|
|
|
|
func setSelfInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
|
Open_im_sdkSetSelfInfo(BaseCallback(result: result), methodCall[string: "operationID"], methodCall.toJsonString())
|
|
}
|
|
|
|
func getSelfUserInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
|
|
Open_im_sdkGetSelfUserInfo(BaseCallback(result: result), methodCall[string: "operationID"])
|
|
}
|
|
|
|
func subscribeUsersStatus(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
|
|
Open_im_sdkSubscribeUsersStatus(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "userIDs"])
|
|
}
|
|
|
|
func unsubscribeUsersStatus(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
|
|
Open_im_sdkUnsubscribeUsersStatus(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "userIDs"])
|
|
}
|
|
|
|
func getSubscribeUsersStatus(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
|
|
Open_im_sdkGetSubscribeUsersStatus(BaseCallback(result: result), methodCall[string: "operationID"])
|
|
}
|
|
|
|
func getUserStatus(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
|
|
Open_im_sdkGetUserStatus(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "userIDs"])
|
|
}
|
|
|
|
func getUsersInfoWithCache(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
|
|
Open_im_sdkGetUsersInfoWithCache(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "userIDs"],
|
|
methodCall[string: "groupID"])
|
|
}
|
|
/*
|
|
func setSelfInfoEx(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
|
|
Open_im_sdkSetSelfInfoEx(BaseCallback(result: result), methodCall[string: "operationID"], methodCall.toJsonString())
|
|
}
|
|
*/
|
|
}
|
|
|
|
public class UserListener: NSObject, Open_im_sdk_callbackOnUserListenerProtocol {
|
|
public func onUserCommandAdd(_ userCommand: String?) {
|
|
CommonUtil.emitEvent(channel: self.channel, method: "userListener", type: "onUserCommandAdd", errCode: nil, errMsg: nil, data: userCommand)
|
|
}
|
|
|
|
public func onUserCommandDelete(_ userCommand: String?) {
|
|
CommonUtil.emitEvent(channel: self.channel, method: "userListener", type: "onUserCommandDelete", errCode: nil, errMsg: nil, data: userCommand)
|
|
}
|
|
|
|
public func onUserCommandUpdate(_ userCommand: String?) {
|
|
CommonUtil.emitEvent(channel: self.channel, method: "userListener", type: "onUserCommandUpdate", errCode: nil, errMsg: nil, data: userCommand)
|
|
}
|
|
|
|
|
|
private let channel:FlutterMethodChannel
|
|
|
|
init(channel:FlutterMethodChannel) {
|
|
self.channel = channel
|
|
}
|
|
|
|
public func onSelfInfoUpdated(_ userInfo: String?) {
|
|
CommonUtil.emitEvent(channel: self.channel, method: "userListener", type: "onSelfInfoUpdated", errCode: nil, errMsg: nil, data: userInfo)
|
|
}
|
|
|
|
public func onUserStatusChanged(_ statusInfo: String?) {
|
|
CommonUtil.emitEvent(channel: self.channel, method: "userListener", type: "onUserStatusChanged", errCode: nil, errMsg: nil, data: statusInfo)
|
|
}
|
|
|
|
} |