请选择 进入手机版 | 继续访问电脑版
源码天堂 设为首页 收藏本站
开启辅助访问 切换到宽版

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

切换风格 立即注册 找回密码

IOS教程网

新浪微博达人勋

2467

积分

273

金钱

0

广播

Rank: 6Rank: 6

积分
2467

活跃会员热心会员推广达人社区QQ达人最佳新人

发表于 2017-9-4 12:05:02 | 显示全部楼层 |阅读模式
分享到:
简介

云信 UI 组件,全称 Netease Instant Message Kit,简称 NIMKit,是一款开源的聊天组件,并支持二次开发。开发者只需要稍作配置就可以打造出属于自己的聊天界面,而通过一些自定义的设置,也可以轻松添加业务相关的功能,如阅后即焚,红包,点赞等功能。NIMKit 底层依赖 NIMSDK,是一款由网易开发的 IM SDK,通过它可以轻松快速在你的 App 中集成 IM 功能。

源起

在一个开发首次做 IM App 时,聊天界面的 ViewController 几乎会变成项目开发中的泥潭,随着项目推进和需求迭代,聊天界面 ViewController 往往会变成 Massive View Controller,所有聊天界面相关的代码都堆积在一起,整个 ViewController 的代码轻松就上千行,无法很好的解耦。

造成聊天界面代码臃肿的原因往往有:

  • 消息种类繁多,没有做很好的归类与统一,代码可拓展性低
  • 聊天界面 UI 元素,事件,回调众多,没有合理解耦

而在日常的 iOS 开发中,大牛们为我们总结出各种方法来进行各个模块的解耦,大方向上有

  • MVCS
  • MVP
  • MVVM
  • VIPER

落实到细节上,又有使用组合,抽取数据源等等小技巧。但对于一些经验不足的 iOS 开发而言,做出一个优雅的聊天界面 ViewController 仍旧是一件难于上青天的事。

在开发云信的前期,我们虽然也意识到这方面的困难,在提供云信 SDK 的同时也开源了相应的 Demo 源码,意在提供一个比较优雅的实现参考,但对于接入的开发者而言,成本仍然过大。这也是这个组件库的由来和目的:开发者在不写任何一行代码的情况下也能够轻松实现一个聊天界面。

集成环境
  • 编译版本 : iOS SDK 10.0 及以上。
  • 操作系统 : iOS 8.0 及以上。
集成说明Cocoapods 集成

我们建议你通过 Cocoapods 来进行 NIMKit 的集成,在 Podfile 中加入以下内容:

pod 'NIMKit'

需要注意的是默认 NIMKit 依赖于 轻量版本 的 NIMSDK,而 完整版本 的 NIMSDK 不仅有 IM 模块,也有音视频模块。对于很多产品而言,只需要接入单纯的 IM 模块,这样可以减少对不必要模块的依赖,进而减少 App 体积。所以我们有两个版本的组件可供选择,安装完组件之后,则不必再安装 NIMSDK 依赖。

  • 轻量版本
    pod 'NIMKit'
    pod 'NIMKit/Lite'
  • 完整版本
    pod 'NIMKit/Full'

Swift 集成

由于使用 Swift 开发的第三方库不支持编译为静态库,NIMKit 和这些库同时使用 Cocoapods 的时候会出现一些问题,具体解决方案可以参考这个文档

手动集成

我们强烈不推荐你使用手动导入的方式来集成 NIMKit,但如果你一定要这么做,可以参考这个文档

快速使用

NIMKit 提供两个最重要的类

  • NIMSessionViewController
  • NIMSessionListViewController

前者用于会话界面的显示和互动,而后者提供了最近会话功能。在集成 NIMSDK 且完成了基础设置后,直接调用这两个类就可以得到完善的聊天界面和会话列表

聊天界面

初始化聊天界面时,上层需要传入当前聊天界面对应的会话信息,即 NIMSession

NIMSession *session = [NIMSession session:uid type:NIMSessionTypeP2P];NIMSessionViewController *vc = [[NIMSessionViewController alloc] initWithSession:session];[self.navigationController pushViewController:vc animated:YES];
会话列表

初始化会话列表不需要任何前置条件,直接初始化即可。

NIMSessionListViewController *vc = [[NIMSessionListViewController alloc] init];
集成效果最近会话进入会话群组会话发送多张图片
发送语音发送地理位置发送中与发送失败,点击叹号可重发
自定义消息-阅后即焚示例最近联系人选择器最近会话删除与未读删除
源码下载:http://code.662p.com/view/15770.html

新浪微博达人勋

438

积分

6

金钱

0

广播

Rank: 3Rank: 3

积分
438
发表于 2017-9-4 12:05:35 | 显示全部楼层
我也来顶一下..

新浪微博达人勋

2467

积分

273

金钱

0

广播

Rank: 6Rank: 6

积分
2467

活跃会员热心会员推广达人社区QQ达人最佳新人

 楼主| 发表于 2017-10-26 13:07:57 | 显示全部楼层
为了三千积分!

新浪微博达人勋

2528

积分

307

金钱

0

广播

Rank: 6Rank: 6

积分
2528

活跃会员热心会员推广达人社区QQ达人最佳新人

发表于 2017-11-15 02:41:10 | 显示全部楼层
支持,楼下的跟上哈~

新浪微博达人勋

412

积分

3

金钱

0

广播

Rank: 3Rank: 3

积分
412
发表于 2017-12-6 22:10:25 | 显示全部楼层
LZ敢整点更有创意的不?兄弟们等着围观捏~

新浪微博达人勋

428

积分

0

金钱

0

广播

Rank: 3Rank: 3

积分
428
发表于 2017-12-15 09:17:37 | 显示全部楼层
LZ是天才,坚定完毕

新浪微博达人勋

391

积分

5

金钱

0

广播

Rank: 3Rank: 3

积分
391
发表于 2017-12-18 02:21:50 | 显示全部楼层
占坑编辑ing

新浪微博达人勋

1315

积分

9

金钱

0

广播

Rank: 6Rank: 6

积分
1315
发表于 2017-12-19 10:27:35 | 显示全部楼层
前排,哇咔咔

新浪微博达人勋

1340

积分

0

金钱

0

广播

Rank: 6Rank: 6

积分
1340
发表于 2017-12-29 12:22:07 | 显示全部楼层
1v1飘过

新浪微博达人勋

2520

积分

330

金钱

1

广播

Rank: 6Rank: 6

积分
2520

社区QQ达人最佳新人活跃会员热心会员推广达人

发表于 2018-1-2 00:21:19 | 显示全部楼层
向楼主学习
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

小黑屋|手机版|Archiver|IOS教程网. ( 粤ICP备12089784号  

GMT+8, 2018-5-22 12:32 , Processed in 0.262488 second(s), 43 queries .

Powered by Discuz X3.1

© 2001-2013 IOS教程网

快速回复 返回顶部 返回列表