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

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

我們先來看一下 IM 的基本功能與本文內(nèi)容的對應(yīng)關(guān)系:


line 0:準(zhǔn)備工作


line 1:引入頭文件


#import <JMessage/JMessage.h>

JMessage 核心頭文件。這是唯一需要導(dǎo)入到你的項(xiàng)目里的頭文件,它引用了內(nèi)部需要用到的頭文件。

line 2:開啟事件監(jiān)聽


[JMessage addDelegate:self withConversation:nil];
  • 用于監(jiān)聽各種全局事件
  • 建議寫在 line 3 之前
  • Parameters:
  • delegate:填入對象需要實(shí)現(xiàn) <JMessageDelegate>
  • conversation:nil 監(jiān)聽所有通知,非 nil 監(jiān)聽指定會話

line 3:啟動 SDK


[JMessage setupJMessage:launchOptions
                 appKey:@"your appkey"
                channel:@"channel name"
       apsForProduction:NO
               category:nil];
  • 建議寫在 application:didFinishLaunchingWithOptions:
  • Parameters:
  • launchOptions:啟動函數(shù)的參數(shù) launchingOption
  • appKey:獲取方式 line 0 - 集成 SDK
  • channel:應(yīng)用的渠道名
  • isProduction:是否為生產(chǎn)模式
  • category:iOS8 新增通知快捷按鈕參數(shù)

line 4:注冊新用戶


[JMSGUser registerWithUsername:@"username" 
                      password:@"password"
             completionHandler:^(id resultObject, NSError *error) {
}];

Parameters:

  • username:用戶名
  • password:密碼
  • handler:error 為 nil 時(shí)調(diào)用成功(下均同)

line 5:登錄


[JMSGUser loginWithUsername:@"username" 
                   password:@"password" 
          completionHandler:^(id resultObject, NSError *error) {
}];

line 6:創(chuàng)建單聊會話


[JMSGConversation createSingleConversationWithUsername:@"username" 
                                     completionHandler:^(id resultObject, NSError *error) {
}];

line 7:發(fā)送文本消息


[(JMSGConversation*)resultObject sendTextMessage:@"text"];

line 8~12:接收文本消息


- (void)onReceiveMessage:(JMSGMessage *)message error:(NSError *)error{
    if (message.content == kJMSGContentTypeText) {
        NSString *text = ((JMSGTextContent *)message.content).text;
    }
}

line 13:獲取歷史消息


NSArray *messages = [(JMSGConversation*)resultObject messageArrayFromNewestWithOffset:nil limit:nil];
  • 利用 line 6 中的 resultObject 轉(zhuǎn)型后獲取
  • 單聊群聊均可
  • Parameters:
  • 返回 NSArray<JMSGMessage* >
  • offset:起點(diǎn)。nil 從最新一條開始,n 從最新第 n 條往歷史追查
  • limit:數(shù)量。nil 表全部

line 14~15:清零單聊未讀消息數(shù)


JMSGConversation *conversation = [JMSGConversation singleConversationWithUsername:username];
[conversation clearUnreadCount];

line 16:獲取會話列表


[JMSGConversation allConversations:^(id resultObject, NSError *error) {
}];
  • 批量獲取所有會話列表
  • 根據(jù)會話類型判斷是單聊還是群聊
  • Parameters:
  • resultObject:NSArray<JMSGConversation*>

line 17:刪除單聊會話


BOOL success = [JMSGConversation deleteSingleConversationWithUsername:username];

line 18:批量獲取用戶詳情


[JMSGUser userInfoArrayWithUsernameArray:nameArr completionHandler:^(id resultObject, NSError *error) {
}];

line 19:創(chuàng)建群組及相關(guān)操作


[JMSGGroup createGroupWithName:name desc:desc memberArray:members completionHandler:^(id resultObject, NSError *error) {
}];

line 20:退出登錄


[JMSGUser logout:^(id resultObject, NSError *error) {
}];
至此一個(gè) IM 的各種基本操作就完了,是不是

很簡單?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 點(diǎn)擊查看原文 Web SDK 開發(fā)手冊 SDK 概述 網(wǎng)易云信 SDK 為 Web 應(yīng)用提供一個(gè)完善的 IM 系統(tǒng)...
    layjoy閱讀 14,356評論 0 15
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,626評論 4 61
  • Swift版本點(diǎn)擊這里歡迎加入QQ群交流: 594119878最新更新日期:18-09-17 About A cu...
    ylgwhyh閱讀 26,258評論 7 249
  • 2017.8.9,我和公司領(lǐng)導(dǎo)及項(xiàng)目經(jīng)理對外墻復(fù)合保溫系統(tǒng)進(jìn)行了實(shí)際工程參觀考察。參觀工程對象為河北工程大學(xué)新校區(qū)...
    hddongjg閱讀 2,674評論 0 0
  • 感覺我最近精神不太好 不知道從什么時(shí)候突然發(fā)現(xiàn) 只要一見到父母以外的家人 就會變得特別狂燥 會有一些過激的行為 甚...
    faywang1118閱讀 314評論 0 1

友情鏈接更多精彩內(nèi)容