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

如今不少 App 都須要集成 IM 功能,今天就爲你們分享一下集成 IM 基本功能的步驟。本文內容以 JMessage 爲例。
極光 IM ( JMessage ) = 極光推送 ( JPush ) + IM,本篇只論述其中的 IM 部分,爲你們快速集成 IM 功能提供一個簡明的範例。html

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

line 0:準備工做


line 1:引入頭文件


#import <JMessage/JMessage.h>複製代碼

JMessage 核心頭文件。這是惟一須要導入到你的項目裏的頭文件,它引用了內部須要用到的頭文件。git

line 2:開啓事件監聽


[JMessage addDelegate:self withConversation:nil];複製代碼
  • 用於監聽各類全局事件
  • 建議寫在 line 3 以前
  • Parameters:
    • delegate:填入對象須要實現
    • 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:api

  • 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) {
}];複製代碼

line 7:發送文本消息


[(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 2 中添加了 的類,能夠監聽該方法
  • 當 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];複製代碼

line 16:獲取會話列表


[JMSGConversation allConversations:^(id resultObject, NSError *error) {
}];複製代碼
  • 批量獲取全部會話列表
  • 根據會話類型判斷是單聊仍是羣聊
  • Parameters:
    • resultObject:NSArray

line 17:刪除單聊會話


BOOL success = [JMSGConversation deleteSingleConversationWithUsername:username];複製代碼

line 18:批量獲取用戶詳情


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

line 19:建立羣組及相關操做


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

line 20:退出登陸


[JMSGUser logout:^(id resultObject, NSError *error) {
}];複製代碼
至此一個 IM 的各類基本操做就完了,是否是

很簡單?

相關文章
相關標籤/搜索