实用工具IOS专题收集第三方重要集成工具

iOS IM即时通讯-[融云] [网易云信]简单集成聊天界面

2016-09-10  本文已影响5031人  Mr_Lucifer

前言

IM即时通讯. 对于iOS开发, 融云, 环信, 网易云信, 都是还不错的选择. 作者今天就以 融云, 网易云信 为例简单介绍下, 即时通讯单聊的 聊天界面 集成.

融云

官网注册账号 -> 创建项目 -> 获得 App Key -> 应用标识中 填写应用包名.
先期准备工作 先告一段落.

1) CocoaPods导入融云 SDK, 这个不用解释了, 不会的话, 官网有详细讲解

pod 'RongCloudIMKit', ‘2.6.7’

2) AppDelegate.m 中引入 融云头文件, 初始化融云SDK

#import <RongIMKit/RongIMKit.h>
#import <RongIMLib/RongIMLib.h>
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyWindow];
    
    //初始化融云SDK
    [[RCIM sharedRCIM] initWithAppKey:@"你获得的App Key"];
    
    ViewController *vc = [[ViewController alloc] init];
    UINavigationController *navi = [[UINavigationController alloc] initWithRootViewController:vc];
    self.window.rootViewController = navi;
    
 
    return YES;
}

3) 进入融云后台 API调试 ->点击 用户服务[获取Token] 创建 两组 token与 userId

举例说明

4) 融云是以token登陆, 以userId连接对话. 现在回到工程中 在 ViewController中

引入头文件

#import <RongIMKit/RCConversationViewController.h>
#import <RongIMKit/RongIMKit.h>

创建UIButton, 点击-(void)clickLoginRongCloud进入融云聊天界面(不用创建VC 融云自带)



-(void)clickLoginRongCloud{

    //登录融云服务器,开始阶段可以先从融云API调试网站获取,之后token需要通过服务器到融云服务器取。
    NSString*token=@"获取的第一组的token";
    
    
    [[RCIM sharedRCIM] connectWithToken:token success:^(NSString *userId) {
        //设置用户信息提供者,页面展现的用户头像及昵称都会从此代理取
//        [[RCIM sharedRCIM] setUserInfoDataSource:self];
        
        dispatch_async(dispatch_get_main_queue(), ^{
            
            //新建一个聊天会话View Controller对象
            RCConversationViewController *chat = [[RCConversationViewController alloc]init];
            //设置会话的类型,如单聊、讨论组、群聊、聊天室、客服、公众服务会话等
            chat.conversationType = ConversationType_PRIVATE;
            //设置会话的目标会话ID。(单聊、客服、公众服务会话为对方的ID,讨论组、群聊、聊天室为会话的ID)
            chat.targetId = @"获取的第二组的userId";  //实现两个账号间通信

            //设置聊天会话界面要显示的标题
            chat.title = @"聊一聊";

            //显示聊天会话界面
            [self.navigationController pushViewController:chat animated:YES];
            
        });
        
    } error:^(RCConnectErrorCode status) {
        NSLog(@"login error status: %ld.", (long)status);
    } tokenIncorrect:^{
        NSLog(@"token 无效 ,请确保生成token 使用的appkey 和初始化时的appkey 一致");
    }];

}

模拟器上运行 ; 更换 token 与 UserId, 再运行在 真机上, 就可实现 真机与模拟器间即时通讯.

  1. 补充说明 简单的聊天界面完成, 如果你的融合账号创建的项目 是很久之前的, 一直没使用, 那融云会默认 APP Key 失效, 无法在API调试中 获取到token.

有询问未读消息的tabbar角标怎么设置 作者补充下代码 : 在聊天列表页中


- (instancetype)init
{
    self = [super init];
    if (self) {    
        /** 关键: 设置类型 */
        [self setDisplayConversationTypes:@[@(ConversationType_PRIVATE), @(ConversationType_GROUP), @(ConversationType_DISCUSSION)]];
        
        [self updateBadgeValueForTabBarItem];
    }
    return self;
}

-(void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];

    /** 从聊天详情页 跳出, 重新调用下 */
    [self updateBadgeValueForTabBarItem];
}


/** 消息提醒调用 */
- (void)notifyUpdateUnreadMessageCount {
  
    [self updateBadgeValueForTabBarItem];

}

/** 消息提醒 */
- (void)updateBadgeValueForTabBarItem {
    
    __weak typeof(self) __weakSelf = self;
    dispatch_async(dispatch_get_main_queue(), ^{
        
        int count = [[RCIMClient sharedRCIMClient] getUnreadCount:self.displayConversationTypeArray];

        if (count > 0) {
           
            __weakSelf.tabBarItem.badgeValue = [[NSString alloc] initWithFormat:@"%d", count];
            
        } else {
            __weakSelf.tabBarItem.badgeValue = nil;    
        }
        
    });
}


网易云信

1)官网注册账号 -> 创建项目 -> 获得 App Key -> 标识管理 填写 Bundle Identifier. -> 上传推送证书P12文件

2) 在云信后台创建的项目中 功能管理 -> 账号管理 中创建两组账号, 云信是以账号, 密码登陆, 以账号连接对话

1) CocoaPods导入云信 SDK, 这个不用解释了, 不会的话, 官网有详细讲解

pod 'NIMSDK'

云信默认不提供 聊天界面, 它提供 NIMKit 类封装了聊天界面. 从官网下载后, 引入工程中, 但是还没完, 所有功能都需要自己去写. 作者对照官方文档, 将需要写的如 : 正在输入, 已读, 添加文件等 简单功能集成了下. 所用东西都需要自己写, 作者就不上代码了, 直接上demo, 供读者借鉴.

传送门 : https://pan.baidu.com/s/1eSbqDW2

以上 !

上一篇下一篇

猜你喜欢

热点阅读