iOS 集成網易云信IM

云信官方文檔在這

看官方文檔的時候,版本選擇最新的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博客

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/83036.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/83036.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/83036.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

人工智能100問?第37問:什么是擴散模型?

目錄 ??一、通俗解釋 二、專業解析?? 三、權威參考 擴散模型是一種??通過系統性地添加再去除噪聲來生成新數據(如圖像)的生成式AI技術??,其核心機制分為兩個階段:正向擴散??:對原始數據(如清晰圖片)逐步添加噪聲,直至完全變成隨機噪點(類似老照片逐漸模糊…

傳輸層核心技術解析

目錄 一、端口號機制 二、網絡診斷工具 1. netstat命令 2. pidof工具 三、UDP協議詳解 協議特征 典型應用場景 四、TCP協議深度解析 核心機制 狀態轉換模型 特殊狀態說明 五、協議對比分析 六、開發實踐要點 一、端口號機制 核心作用&#xff1a;標識主機唯一進程…

IO Vs NIO

一、IO(傳統阻塞式) 全稱?&#xff1a;Input/Output(輸入/輸出) 定義?&#xff1a;Java 1.0 引入的基礎 I/O 模型&#xff0c;基于流&#xff08;Stream&#xff09;的同步阻塞操作&#xff0c;線程在讀寫數據時會阻塞直到操作完成。 二、NIO(新式非阻塞式) ?全…

基于原生JavaScript前端和 Flask 后端的Todo 應用

Demo地址&#xff1a;https://gitcode.com/rmbnetlife/todo-app-js-flask.git Python Todo 應用 這是一個使用Python Flask框架開發的簡單待辦事項(Todo)應用&#xff0c;采用前后端分離架構。本項目實現了待辦事項的添加、刪除、狀態切換等基本功能&#xff0c;并提供了直觀…

005 ElasticSearch 許可證過期問題

ElasticSearch 許可證過期問題 項目啟動報錯 org.elasticsearch.client.ResponseException: method [GET], host [http://127.0.0.1:9200], URI [/_cluster/health/], status line [HTTP/1.1 403 Forbidden] {"error":{"root_cause":[{"type":…

哪些崗位最易被AI替代?

隨著AI技術高速演進&#xff0c;一場“職場大洗牌”正悄然上演。當ChatGPT出口成章、機器人能精準執勤&#xff0c;AI時代的“就業焦慮”已不再是空談。你是否認真思考過&#xff0c;自己所處的崗位是否也正面臨被AI邊緣化的風險&#xff1f; 以下幾類職業&#xff0c;已成為AI…

信號槽中 sender() 的作用

好的,sender() 是 Qt 框架中的一個重要函數,它用于獲取觸發當前槽函數的對象。在 Qt 的信號和槽機制中,一個信號可以連接到多個槽函數,而一個槽函數也可以被多個信號觸發。sender() 函數允許你在槽函數中確定是哪個對象觸發了當前信號。 信號和槽機制 在 Qt 中,信號和槽…

深度學習|pytorch基本運算

【1】引言 pytorch是深度學習常用的包&#xff0c;顧名思義&#xff0c;就是python適用的torch包&#xff0c;在python里面使用時直接import torch就可以調用。 需要注意的是&#xff0c;pytorch包與電腦配置、python版本有很大關系&#xff0c;一定要仔細閱讀安裝要求、找到…

DeepSeek 賦能數字人直播帶貨:技術革新重塑電商營銷新生態

目錄 一、引言二、DeepSeek 技術探秘2.1 DeepSeek 技術原理剖析2.2 DeepSeek 與其他大模型對比優勢 三、數字人直播帶貨現狀洞察3.1 數字人直播帶貨發展歷程回顧3.2 市場規模與增長趨勢分析3.3 現存問題與挑戰探討 四、DeepSeek 在數字人直播帶貨中的應用實例4.1 交個朋友的成功…

實驗設計與分析(第6版,Montgomery)第5章析因設計引導5.7節思考題5.11 R語言解題

本文是實驗設計與分析&#xff08;第6版&#xff0c;Montgomery著&#xff0c;傅玨生譯) 第5章析因設計引導5.7節思考題5.11 R語言解題。主要涉及方差分析&#xff0c;正態假設檢驗&#xff0c;殘差分析&#xff0c;交互作用圖。 dataframe<-data.frame( densityc(570,565,…

四、關系數據庫標準語言SQL_1

四、關系數據庫標準語言SQL_1 主要內容 4.1 SQL概述 SQL簡介 4.2 SOL的系統結構4.3 SQL數據定義 SQL的數據定義 4.5 SQL數據查詢4.6 SQL數據更新4.7 SQL中的視圖4.8 SQL的數據控制4.9 嵌入式SQL小結 4.1 SQL概述 主要內容 SQL簡介SQL的特點SQL的系統結構 SQL簡介 SQL&…

vscode的Embedded IDE創建keil項目找不到源函數或者無法跳轉

創建完Embedded IDE項目后跳轉索引很容易找不到源函數或者無法跳轉&#xff0c;原因是vscode工作區被eide覆蓋了&#xff0c;需要手動往當前目錄下的.vscode/c_cpp_properties.json里添加路徑 打開eide.json &#xff0c;找到folders&#xff0c; 里面的name是keil里工程的虛擬…

【Docker管理工具】部署Docker管理面板DweebUI

【Docker管理工具】部署Docker管理面板DweebUI 一、DweebUI介紹1.1 DweebUI 簡介1.2 主要特點1.3 使用場景 二、本次實踐規劃2.1 本地環境規劃2.2 本次實踐介紹 三、本地環境檢查3.1 檢查Docker服務狀態3.2 檢查Docker版本3.3 檢查docker compose 版本 四、下載DweebUI鏡像五、…

CentOS7.9環境離線部署docker和docker-compose的兩種方式

目 錄 一、yum安裝&#xff0c;使用rpm安裝包和相關依賴 1.1 準備rpm安裝包 1.2 將docker-23.0.4.tar.gz上傳至/opt目錄下 二、二進制文件方式安裝 三、安裝docker-compose 一、yum安裝&#xff0c;使用rpm安裝包和相關依賴 1.1 準備rpm安裝包 1&#xff09;在一臺與…

AI賦能SEO關鍵詞策略

內容概要 當前搜索引擎優化領域正經歷由人工智能驅動的范式革新。傳統關鍵詞研究依賴人工統計與經驗判斷&#xff0c;而AI技術通過多維數據建模與自然語言處理&#xff0c;實現了從用戶行為分析到語義關聯挖掘的系統升級。具體而言&#xff0c;智能語義解析技術可穿透表層搜索…

MonoPCC:用于內窺鏡圖像單目深度估計的光度不變循環約束|文獻速遞-深度學習醫療AI最新文獻

Title 題目 MonoPCC: Photometric-invariant cycle constraint for monocular depth estimation of endoscopic images MonoPCC&#xff1a;用于內窺鏡圖像單目深度估計的光度不變循環約束 01 文獻速遞介紹 單目內窺鏡是胃腸診斷和手術的關鍵醫學成像工具&#xff0c;但其…

使用基于Xsens慣性傳感器的動作捕捉技術測量人體工程學

由于單調和片面的體力消耗&#xff0c;牙科領域的從業者患肌肉骨骼疾病 (MSD) 的幾率很高。慣性測量單元 (IMU) 越來越成為評估工作姿勢風險的焦點。因此&#xff0c;本研究旨在使用基于慣性傳感器的運動捕捉 (MoCap) 評估人體工程學講座和培訓干預對牙科助理學生的姿勢風險和M…

抗輻照加固CANFD芯片:以車規級設計提升商業航天系統可靠性

摘要 商業航天領域的發展對電子系統的可靠性和抗輻照能力提出了更高要求。本文深入探討了抗輻照加固CANFD芯片如何借助車規級設計&#xff0c;增強商業航天系統的可靠性。本文以國科安芯CANFD芯片ASM1042為例&#xff0c;通過對芯片單粒子效應脈沖激光試驗報告、數據手冊及芯片…

VSCode+Cline 安裝配置及使用說明

安裝配置 打開VSCode&#xff0c;點擊左側Extension圖標&#xff0c;在彈出頁面中&#xff0c;檢索Cline&#xff0c;選擇Cline進行安裝。 安裝完畢&#xff0c;在左側會出現一個圖標&#xff0c;點擊圖標 選擇【Use your own API key】&#xff0c;在出來的界面中選擇大模型&…

【Linux 基礎知識系列】第二篇-Linux 發行版概述

一、什么是 Linux 發行版&#xff1f; Linux 發行版是指將 Linux 內核和應用程序、工具、庫等有機組合在一起&#xff0c;形成一個完整的操作系統。由于 Linux 的開源特性&#xff0c;任何人都可以在 Linux 內核的基礎上進行修改和定制&#xff0c;因此產生了許多不同的發行版…