云信官方文檔在這
看官方文檔的時候,版本選擇最新的V10。
1、CocoPods集成
pod 'NIMSDK_LITE'
2、AppDelegate.m添加頭文件
#import <NIMSDK/NIMSDK.h>
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<V2NIMUser *> * _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/NIMSDK.h>//代理
<NIMConversationManagerDelegate,V2NIMLocalConversationListener>//添加會話監聽
[[NIMSDK sharedSDK].v2LocalConversationService addConversationListener:self];//移除會話監聽
[[NIMSDK sharedSDK].v2LocalConversationService removeConversationListener:self];///代理方法-部分//會話數據云端同步失敗,可能為如下原因:網絡連接斷開;服務異常。可以根據相應錯誤碼確定相關錯誤原因
- (void)onSyncFailed:(V2NIMError *)error
{
}
//創建會話觸發
- (void)onConversationCreated:(V2NIMLocalConversation *)conversation
{}
//被刪除的會話ID列表,可以根據該ID列表移除界面上展示的會話數據
- (void)onConversationDeleted:(NSArray<NSString *> *)conversationIds
{}#pragma mark - 會話內容或屬性變更時觸發
- (void)onConversationChanged:(NSArray<V2NIMLocalConversation *> *)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博客