之前写过这篇文章,但是写的太糙.对大家的开发并没有什么大的帮助!今天来看了下点击量,竟然有一千多访问量.实在惭愧.最近关于网易云信即时通讯的接入也算告一段落.可能还有很多bug需要处理.许多功能需要增加.到时候再更.今天,抽空重新编辑了这篇文章.扒一扒到目前为止,我使用网易云信接入中,遇到的一些问题.整理肯定不完善,希望大家只做参考,有好的建议及时交流沟通! 大家也可以加入技术交流群:234713941.一起探讨!本人也小白一枚!还望各位大佬多多指教!
项目中暂时使用到的功能:
1.网易云信接入
2.单聊.
3.最近联系人列表实现.
4.历史记录消息查询.及本地历史消息清除.
5. 自定义消息发送功能.(具体自定义消息功能实现可参考这篇文章).
1.首先我们先说接入网易云信.
关于网易云信接入,后期才发现.NIMKit(官方提供的UI组件,可拓展)其中包含了NIMSDK.所以如果你还没接入网易云信,同时需要用到它的NIMKit,你可以直接cocoapods "NIMKit"即可.
同时需要注意到项目中本来存在的几个第三方类:
SDWebImagev3.8.2Toastv3.0SVProgressHUDv2.0.3M80AttributedLabelv1.6.3TZImagePickerControllerv1.7.7
做好更新替换,以免集成失败!
鉴于NIMKit集成方便,利于拓展,强烈建议大家直接集成NIMKit.
2.单聊功能实现:
首先,我们创建一个类SLSessionViewController 继承 NIMSessionViewController(子类继承父类,同时继承了父类的所有属性和方法,并对父类进行拓展,以此完成我们的需求).
实现单聊中,需要注意打开app的安全权限,以便app被允许访问相册、相机、位置等信息.
在info.plist文件中添加:
1.相册 NSPhotoLibraryUsageDescription 是否允许此app使用相册?
2.相机 NSCameraUsageDescription是否允许此app使用相机?
3.麦克风 NSMicrophoneUsageDescription 是否允许此app使用
4.位置 NSLocationUsageDescription 是否允许此app使用位置?
5.使用时访问位置 NSLocationWhenInUseUsageDescription 是否允许此app在使用期间访问位置
6.始终访问位置 NSLocationAlwaysUsageDescription 是否允许此app始终访问位置?
此时,大概已实现单聊的基本功能,但是会发现发送的相册、位置等消息是不可点击的.实现父类的方法中关于图片等的点击事件并加以拓展,即可实现.
3.最近消息列表
创建类继承与NIMSessionListViewController.并对类进行拓展.
4.实现本地历史消息清除及云端历史消息获取请参考这篇文章
另外,提示下测试AppKey的小伙伴们,不能直接更换官方的demo中的appkey.注册用户时候会提示不是demo指定appKey. 因为关于注册接口.官方是自己实现的服务器端和demo对接的.你可以跟本公司后台去做服务器注册接口处理.我们的注册请求发给服务器.让服务器去和网易云信平台沟通.从而实现注册用户效果.那么即时通讯作为app项目中的一部分大概使用流程为:
1.初始化网易云信
2.注册app平台账户时,同时在后台注册网易云信账号及密码
3.登录app平台账号同时登录网易云信.
4.把用户账号信息及密码存储到本地中.
5.每次调起app时,检测本地是否有云信账号及密码.如果有就自动登录.
暂时更新这么多,后期如果项目更新,再和大家沟通讨论!