97 lines
2.8 KiB
Mathematica
97 lines
2.8 KiB
Mathematica
|
|
//
|
|||
|
|
// TUIUtils.m
|
|||
|
|
// TXIMSDK_TUIKit_iOS
|
|||
|
|
//
|
|||
|
|
// Created by xiangzhang on 2020/7/3.
|
|||
|
|
//
|
|||
|
|
|
|||
|
|
#import "TRTCCallingUtils.h"
|
|||
|
|
|
|||
|
|
@implementation TRTCCallingUtils
|
|||
|
|
|
|||
|
|
+ (TRTCCallingUtils *)shareInstance {
|
|||
|
|
static dispatch_once_t onceToken;
|
|||
|
|
static TRTCCallingUtils *g_sharedInstance = nil;
|
|||
|
|
dispatch_once(&onceToken, ^{
|
|||
|
|
g_sharedInstance = [[TRTCCallingUtils alloc] init];
|
|||
|
|
});
|
|||
|
|
return g_sharedInstance;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 实际项目中建议由后台生成一个唯一 roomID,防止 roomID 重复
|
|||
|
|
+ (UInt32)generateRoomID {
|
|||
|
|
// android 最大值是 int32,roomID 不能为 0
|
|||
|
|
UInt32 random = 1 + arc4random() % (INT32_MAX - 1);
|
|||
|
|
return random;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
+ (void)getCallUserModel:(NSString *)userID finished:(void(^)(CallUserModel *))finished {
|
|||
|
|
[[V2TIMManager sharedInstance] getUsersInfo:@[userID] succ:^(NSArray<V2TIMUserFullInfo *> *infoList) {
|
|||
|
|
V2TIMUserFullInfo *info = infoList.firstObject;
|
|||
|
|
if (info) {
|
|||
|
|
CallUserModel *model = [[CallUserModel alloc] init];
|
|||
|
|
model.name = info.nickName;
|
|||
|
|
model.avatar = info.faceURL;
|
|||
|
|
model.userId = info.userID;
|
|||
|
|
finished(model);
|
|||
|
|
} else {
|
|||
|
|
finished(nil);
|
|||
|
|
}
|
|||
|
|
} fail:^(int code, NSString *desc) {
|
|||
|
|
finished(nil);
|
|||
|
|
}];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
+ (NSString *)dictionary2JsonStr:(NSDictionary *)dict {
|
|||
|
|
return [[NSString alloc] initWithData:[self dictionary2JsonData:dict] encoding:NSUTF8StringEncoding];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
+ (NSDictionary *)jsonSring2Dictionary:(NSString *)jsonString {
|
|||
|
|
if (jsonString == nil) {
|
|||
|
|
return nil;
|
|||
|
|
}
|
|||
|
|
NSData *data = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
|
|||
|
|
NSError *err = nil;
|
|||
|
|
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&err];
|
|||
|
|
if (err || ![dic isKindOfClass:[NSDictionary class]]) {
|
|||
|
|
NSLog(@"Json parse failed: %@", jsonString);
|
|||
|
|
return nil;
|
|||
|
|
}
|
|||
|
|
return dic;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
+ (NSData *)dictionary2JsonData:(NSDictionary *)dict {
|
|||
|
|
// 转成Json数据
|
|||
|
|
if ([NSJSONSerialization isValidJSONObject:dict])
|
|||
|
|
{
|
|||
|
|
NSError *error = nil;
|
|||
|
|
NSData *data = [NSJSONSerialization dataWithJSONObject:dict options:0 error:&error];
|
|||
|
|
if(error)
|
|||
|
|
{
|
|||
|
|
NSLog(@"[%@] Post Json Error", [self class]);
|
|||
|
|
}
|
|||
|
|
return data;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
NSLog(@"[%@] Post Json is not valid", [self class]);
|
|||
|
|
}
|
|||
|
|
return nil;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
+ (NSDictionary *)jsonData2Dictionary:(NSData *)jsonData {
|
|||
|
|
if (jsonData == nil) {
|
|||
|
|
return nil;
|
|||
|
|
}
|
|||
|
|
NSError *err = nil;
|
|||
|
|
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&err];
|
|||
|
|
if (err || ![dic isKindOfClass:[NSDictionary class]]) {
|
|||
|
|
NSLog(@"Json parse failed");
|
|||
|
|
return nil;
|
|||
|
|
}
|
|||
|
|
return dic;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
@end
|