在這裡將為大家介紹的是20 行代碼極速為 App 加上聊天功能的相關介紹,具體實例請看下文
現在很多 App 都需要集成 IM 功能,今天就為大家分享一下集成 IM 基本功能的步驟。本文內容以 JMessage 為例。極光 IM ( JMessage )=極光推送 ( JPush )+ IM,本篇只論述其中的 IM 部分,為大家快速集成 IM 功能提供一個簡明的范例。
我們先來看一下 IM 的基本功能與本文內容的對應關系:
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 加上聊天功能】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!