ios集成网易云信IM功能遇到的坑

    之前写过这篇文章,但是写的太糙.对大家的开发并没有什么大的帮助!今天来看了下点击量,竟然有一千多访问量.实在惭愧.最近关于网易云信即时通讯的接入也算告一段落.可能还有很多bug需要处理.许多功能需要增加.到时候再更.今天,抽空重新编辑了这篇文章.扒一扒到目前为止,我使用网易云信接入中,遇到的一些问题.整理肯定不完善,希望大家只做参考,有好的建议及时交流沟通! 大家也可以加入技术交流群:234713941.一起探讨!本人也小白一枚!还望各位大佬多多指教!

    项目中暂时使用到的功能: 

    1.网易云信接入

    2.单聊.

    3.最近联系人列表实现.

    4.历史记录消息查询.及本地历史消息清除.

    5. 自定义消息发送功能.(具体自定义消息功能实现可参考这篇文章).


   1.首先我们先说接入网易云信.

   关于网易云信接入,后期才发现.NIMKit(官方提供的UI组件,可拓展)其中包含了NIMSDK.所以如果你还没接入网易云信,同时需要用到它的NIMKit,你可以直接cocoapods "NIMKit"即可.

  同时需要注意到项目中本来存在的几个第三方类:

    做好更新替换,以免集成失败!

    鉴于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时,检测本地是否有云信账号及密码.如果有就自动登录.


     暂时更新这么多,后期如果项目更新,再和大家沟通讨论!


### 网易云信 IM SDK 和 API 文档获取 网易云信提供了丰富的开发资源来支持开发者快速接入其即时通讯 (IM) 功能以及音视频通话等功能。以下是关于如何下载网易云信 IM SDK 及查阅相关 API 文档的信息: #### 1. **SDK 下载** 网易云信的官方文档中提到,客户端需要通过 SDK 连接并登录到云信服务器[^2]。因此,为了实现这一目标,可以访问网易云信官网中的“开发准备”页面,该页面通常会提供不同平台下的 SDK 下载链接。 - 官方网站上会有专门的章节描述各平台(Android、iOS、Web 等)对应的 SDK 版本及其更新日志。 - 开发者可以根据实际需求选择适合的操作系统版本进行下载。 #### 2. **API 文档查询** 对于服务端 API 的使用流程,尤其是像注册账号这样的操作,可以通过阅读《IM 服务端 API 文档》获得详细的指导[^1]。这份文档不仅涵盖了基础的服务端接口调用方法,还包含了错误码解析等内容,帮助开发者更好地理解每一个请求参数的意义及返回结果可能的情况。 另外,在集成音视频通话前需完成 IM 账号系统的搭建工作[^3],这也意味着相关的 API 接口同样记录于上述提及的服务端 API 手册之中。 至于消息处理方面需要注意的是,如果采用服务端发送方式,则无法激活第三方回调机制[^4]。所以当设计应用逻辑时应考虑到这一点差异带来的影响。 #### 示例代码片段展示 下面给出一段简单的 Python 请求示例用于创建新用户的场景模拟: ```python import requests url = "https://api.netease.im/nimserver/user/create.action" headers = { 'Content-Type': 'application/x-www-form-urlencoded', } data = { 'accid': 'test_user', 'name': 'Test User', 'icon': '', 'token': '', } response = requests.post(url, headers=headers, data=data) print(response.json()) ``` 此脚本展示了向指定 URL 地址发起 POST 请求的过程,并附带必要的字段如 `accid`, `name` 等作为用户资料的一部分提交给服务器验证。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值