iOS 集成网易云信IM
云信官方文档在这
看官方文档的时候,版本选择最新的V10。
1、CocoPods集成
pod 'NIMSDK_LITE'
2、AppDelegate.m添加头文件
#import
3、初始化
NIMSDKOption *mrnn_option = [NIMSDKOption optionWithAppKey:@"6f6568e354026d2d658a7bf5a75cbeac"]; mrnn_option.apnsCername = @"your apns certificate"; mrnn_option.pkCername = @"your push kit certificate"; // 初始化配置 V2NIMSDKOption *mrnn_v2Option = [[V2NIMSDKOption alloc] init]; //激活 V10 所有 API,默认使用 V10 的登录接口登录 IM mrnn_v2Option.useV1Login = NO; //若仍使用 V9 的登录接口登录 IM //v2Option.useV1Login = YES; //是否开启云端服务功能,默认使用本地会话 // v2Option.enableV2CloudConversation = NO; //若需要使用云端会话 //v2Option.enableV2CloudConversation = YES; [[NIMSDK sharedSDK] registerWithOptionV2:mrnn_option v2Option:mrnn_v2Option];
4、登录IM
[[[NIMSDK sharedSDK] v2LoginService] login:@"后端返回的userid" token:@"后端返回的imtoken" option:nil success:^{ NSLog(@"登录成功"); } failure:^(V2NIMError * _Nonnull error) { NSLog(@"登录失败:%@",error); }];
5、获取未读消息数
NSInteger Count = [[NIMSDK sharedSDK].v2LocalConversationService getTotalUnreadCount];
6、获取IM消息列表
[[NIMSDK sharedSDK].v2LocalConversationService getConversationList:0 limit:20 success:^(V2NIMLocalConversationResult * _Nonnull result) { } failure:^(V2NIMError * _Nonnull error) { }];
7、根据用户id查询用户信息
[[[NIMSDK sharedSDK] v2UserService] getUserList:idArr success:^(NSArray * _Nonnull result) { } failure:^(V2NIMError * _Nonnull error) { }];
8、对一个用户发送IM消息
V2NIMMessage *v2Message = [V2NIMMessageCreator createTextMessage:@"hello"]; V2NIMSendMessageParams *params = [[V2NIMSendMessageParams alloc] init]; NSString *idStr = [V2NIMConversationIdUtil p2pConversationId:@"10000"]; // 发送消息 [[[NIMSDK sharedSDK] v2MessageService] sendMessage:v2Message conversationId:idStr params:params success:^(V2NIMSendMessageResult * _Nonnull result) { NSLog(@"发送消息成功"); } failure:^(V2NIMError * _Nonnull error) { NSLog(@"发送消息结果:%@==%@",error,idStr); } progress:^(NSUInteger pro) { }];
9、消息列表代理方法
#import //代理 //添加会话监听 [[NIMSDK sharedSDK].v2LocalConversationService addConversationListener:self]; //移除会话监听 [[NIMSDK sharedSDK].v2LocalConversationService removeConversationListener:self]; ///代理方法-部分 //会话数据云端同步失败,可能为如下原因:网络连接断开;服务异常。可以根据相应错误码确定相关错误原因 - (void)onSyncFailed:(V2NIMError *)error { } //创建会话触发 - (void)onConversationCreated:(V2NIMLocalConversation *)conversation { } //被删除的会话ID列表,可以根据该ID列表移除界面上展示的会话数据 - (void)onConversationDeleted:(NSArray *)conversationIds { } #pragma mark - 会话内容或属性变更时触发 - (void)onConversationChanged:(NSArray *)conversationList { } #pragma mark - 总未读数变更触发 - (void)onTotalUnreadCountChanged:(NSInteger)unreadCount { }
10、跳转到消息聊天室
P2PChatViewController *p2pChatVC = [[P2PChatViewController alloc] initWithConversationId:model.conversationId anchor:nil]; p2pChatVC.userid = model.accountId; p2pChatVC.name = model.name; p2pChatVC.avatar = model.avatar; [self.navigationController pushViewController:p2pChatVC animated:true];
11、获取IM登录状态
V2NIMLoginStatus status = [[[NIMSDK sharedSDK] v2LoginService] getLoginStatus]; switch (status) { case V2NIM_LOGIN_STATUS_LOGOUT: NSLog(@"login status = LOGOUT"); break; case V2NIM_LOGIN_STATUS_LOGINING: NSLog(@"login status = logining"); break; case V2NIM_LOGIN_STATUS_LOGINED: NSLog(@"login status = logined"); break; default: NSLog(@"login status = %ld", status); }
结语:至此,网易云信IM集成完成!不懂的可回复,看到了就回!
iOS 集成网易云信的音视频呼叫组件-CSDN博客
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。