游戏技术文章

20 行代码极速为 App 加上聊天功能

时间:2017-3-13 11:53:12  作者:棋牌资源网  来源:棋牌资源网  查看:7853  评论:0
内容摘要:现在很多 App 都需要集成 IM 功能,今天就为大家分享一下集成 IM 基本功能的步骤。本文内容以 JMessage 为例。极光 IM ( JMessage ) = 极光推送 ( JPush ) + IM,本篇只论述其中的 IM 部分,为大家快速集...
现在很多 App 都需要集成 IM 功能,今天就为大家分享一下集成 IM 基本功能的步骤。本文内容以 JMessage 为例。

极光 IM ( JMessage ) = 极光推送 ( JPush ) + IM,本篇只论述其中的 IM 部分,为大家快速集成 IM 功能提供一个简明的范例。

我们先来看一下 IM 的基本功能与本文内容的对应关系:

line 0:准备工作


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) {
}];

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 中添加了 <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];

line 16:获取会话列表


[JMSGConversation allConversations:^(id resultObject, NSError *error) {
}];
  • 批量获取所有会话列表
  • 根据会话类型判断是单聊还是群聊
  • Parameters:
    • resultObject:NSArray<JMSGConversation*>

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 的各种基本操作就完了
标签:20行代码极速为App加上聊天功能 

欢迎加入VIP,【VIP售价:只要288元永久VIP会员】畅享商业棋牌游戏程序下载,点击开通!

下载说明


☉本站所有源码和资源均由站长亲自测试-绝对保证都可以架设,运营!
☉如源码和资源有损坏或所有链接均不能下载,请告知管理员,

☉本站软件和源码大部分为站长独资,资源购买和收集,放心下载!

☉唯一站长QQ:1004003180  [人格担保-本站注重诚信!]

☉购买建议E-mail:1004003180@qq.com   源码收购 E-mail:1004003180@qq.com    

☉本站文件解压密码  【文章内都自带解压密码,每个密码不同!】


本站提供的所有源码,均来源站长提供,仅学习交流 浙ICP备09009969号

由此产生不良后果和法律责任与本站无关,如果侵犯了您的版权,请来信告知 1004003180@qq.com 将及时更正和删除! 

Copyright © 2008-2024 棋牌资源网,你身边的棋牌资源下载站    All Rights Reserved