你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> 20 行代碼極速為 App 加上聊天功能

20 行代碼極速為 App 加上聊天功能

編輯:IOS開發綜合

在這裡將為大家介紹的是20 行代碼極速為 App 加上聊天功能的相關介紹,具體實例請看下文

現在很多 App 都需要集成 IM 功能,今天就為大家分享一下集成 IM 基本功能的步驟。本文內容以 JMessage 為例。極光 IM ( JMessage )=極光推送 ( JPush )+ IM,本篇只論述其中的 IM 部分,為大家快速集成 IM 功能提供一個簡明的范例。

我們先來看一下 IM 的基本功能與本文內容的對應關系:

20 行代碼極速為 App 加上聊天功能 line 0:准備工作 下載 SDK 集成 SDK line 1:引入頭文件
#import <JMessage/JMessage.h>

JMessage 核心頭文件。這是唯一需要導入到你的項目裡的頭文件,它引用了內部需要用到的頭文件。

line 2:開啟事件監聽
[JMessage addDelegate:self withConversation:nil];
用於監聽各種全局事件 建議寫在 line 3 之前 Parameters: delegate:填入對象需要實現 <JMessageDelegate> conversation:nil 監聽所有通知,非 nil 監聽指定會話 line 3:啟動 SDK
[JMessage setupJMessage:launchOptions
                 appKey:@"your appkey"
                channel:@"channel name"
       apsForProduction:NO
               category:nil];
建議寫在application:didFinishLaunchingWithOptions: Parameters: launchOptions:啟動函數的參數 launchingOption appKey:獲取方式 line 0 - 集成 SDK channel:應用的渠道名 isProduction:是否為生產模式 category:IOS8 新增通知快捷按鈕參數 line 4:注冊新用戶
[JMSGUser registerWithUsername:@"username" 
                      password:@"password"
             completionHandler:^(id resultObject, NSError *error) {
}];

Parameters:

username:用戶名 password:密碼 handler:error 為 nil 時調用成功(下均同) line 5:登錄
[JMSGUser loginWithUsername:@"username" 
                   password:@"password" 
          completionHandler:^(id resultObject, NSError *error) {
}];
line 6:創建單聊會話
[JMSGConversation createSingleConversationWithUsername:@"username" 
                                     completionHandler:^(id resultObject, NSError *error) {
}];
會話是整個 IM 的核心,所有的消息行為都基於「會話」 該會話不存在會返回新會話,存在會返回已有會話 Parameters: handler:正常返回時 resultObject 為JMSGConversation會話對象 ((JMSGConversation*)resultObject).target:會話的對方目標: 用戶對象 JMSGUser 群組對象 JMSGGroup Related APIs: 創建單聊跨應用會話 創建群聊會話 line 7:發送文本消息
[(JMSGConversation*)resultObject sendTextMessage:@"text"];
轉型 line 6 - handler 中的resultObject,並發送文本消息 Related APIs: 發送圖片消息 發送語音消息 發送文件消息 發送地理位置消息 line 8~12:接收文本消息
- (void)onReceiveMessage:(JMSGMessage *)message error:(NSError *)error{
    if (message.content == kJMSGContentTypeText) {
        NSString *text = ((JMSGTextContent *)message.content).text;
    }
}
在 line 2 中添加了 <JMessageDelegate> 的類,可以監聽該方法 當 App 收到(文本、圖片等各類)消息時該方法被調用 根據message.contentType判斷消息類型 轉型message.content為文本內容並獲取文本text以展示 UI Related APIs: 圖片內容 聲音內容 文件內容 line 13:獲取歷史消息
NSArray *messages = [(JMSGConversation*)resultObject messageArrayFromNewestWithOffset:nil limit:nil];
利用 line 6 中的resultObject轉型後獲取 單聊群聊均可 Parameters: 返回 NSArray<JMSGMessage* > offset:起點。nil 從最新一條開始,n 從最新第 n 條往歷史追查 limit:數量。nil 表全部 line 14~15:清零單聊未讀消息數
JMSGConversation *conversation = [JMSGConversation singleConversationWithUsername:username];
[conversation clearUnreadCount];
Related APIs: 清零群聊 line 16:獲取會話列表
[JMSGConversation allConversations:^(id resultObject, NSError *error) {
}];
批量獲取所有會話列表 根據會話類型判斷是單聊還是群聊 Parameters: resultObject:NSArray<JMSGConversation*> line 17:刪除單聊會話
BOOL success = [JMSGConversation deleteSingleConversationWithUsername:username];
Related APIs: 刪除單聊跨應用會話 刪除群聊會話 line 18:批量獲取用戶詳情
[JMSGUser userInfoArrayWithUsernameArray:nameArr completionHandler:^(id resultObject, NSError *error) {
}];
Parameters: nameArray:NSArray<NSString*> resultObject:NSArray<JMSGUser*> Related APIs: 獲取本用戶詳情 修改本用戶詳情 修改本用戶密碼 line 19:創建群組及相關操作
[JMSGGroup createGroupWithName:name desc:desc memberArray:members completionHandler:^(id resultObject, NSError *error) {
}];
Parameters: name:群名 desc:群組描述 memberArray:成員列表,NSArray<NSString*> resultObject:群組對象 JMSGGroup Related APIs: 獲取我的群組列表 獲取群組成員列表 添加成員 刪除成員 退群 獲取群組詳情 修改群組詳情 line 20:退出登錄
[JMSGUser logout:^(id resultObject, NSError *error) {
}];
至此一個 IM 的各種基本操作就完了,是不是 很簡單?

作者: pikacode - 極光( jpush 為極光團隊賬號)

原文:20 行代碼極速為 App 加上聊天功能

知乎專欄:極光日報

以上就是這篇文章的全部內容了,希望大家能夠喜歡。

[db:作者簡介][db:原文翻譯及解析]

【20 行代碼極速為 App 加上聊天功能】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved