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

來源:互聯網
上載者:User

20 行代碼極速為 App 加上聊天功能,極速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 加上聊天功能

知乎專欄:極光日報

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.