腾讯im接入流程

 

1 sdk接入:

  从https://www.qcloud.com/product/im  下载sdk ,

https://www.qcloud.com/document/product/269/1565  sdk集成流程。

 

2 结合项目:

  1. 在集合第三方初始化appkey的头文件中,全局化相关应用配置(定义宏)
  2. 应用配置地址:https://console.qcloud.com/avc
  3. 需要全局化的字段:SdkAppId  accountType  (如果需要离线推送,则需要加一个BusiId)
  4. 在appdelegate  willFinishLauchingWithOptions 方法中初始化,【timmanager sharedManager】调用initSdk 方法,appkeyaccountType 在第三部中获得
  5. 初始化完毕后,可以通过注册代理,来监听消息。
  6. 一般来说,项目中以一个messageManager类来处理回调,同样,在appdelegate中,初始化这个Manager类(单例)。
  7. TIMMessageListener,TIMRefreshListener,TIMUserStatusListener,TIMConnListener manager类遵守这几个代理,以接受回调,来处理接受信息,消息刷新,用户状态改变和连接状态改变。
  8. 新消息回调:腾讯im 消息处理中,主要注意以下几个类:

timConversation 会话类,可以理解为是一段对话

timMessage 消息类, 可以理解为是会话当中的某一句话

timElem 消息基类,可以理解为,timMessage由一些timElem组成,构成一句话

timElem有很多子类。 文本,图片,语音等等等

(9)在自定义manager类中,我们监听收到消息的回调。-(void)onNewMessage(NSArray *)msgs,   返回一个数组,是一个timMessage类的数组,我们取得数组第一个元素 msg.firstObject;

通过   【timMessage getElem:0】方法,获得elem 消息基类。

(10)坑点:elem 可能是很多种类:文本类、图片类、自定义类。   口袋中,只有系统发来的消息。处理自定义类,先判断elem是否是TIMCustomElem类,然后调用customElem的data方法(一定要判断,否则会crash),此时,你拿到了一个NSdata数据,转成dic,去解析其中的字段。  (每个字段都有和服务器约定好的作用,根据其作用去执行逻辑)

 

(11)通过监听onNewMessage 方法,处理消息红点、震动、消息提示等业务

(12)获取所有会话,通过调用【timmanager sharedInstance】getConversationList 方法获取所有会话列表。注意点:(一定要在im登录的情况下获取,否则crash),此项目中,im登录由服务端来做,我们在注册、登录后会获得 一个userSign(腾讯id) 在getConversationList之前,要判断这个userSign是否为空。

(13)获得了会话,就可以以这个会话为参数,去自定义展示cell  之后所做的聊天处理,都在TimMessage中的elem中,根据elem的类型做处理。

(14)腾讯官方api中,可以做很多处理,如:消息已读,消息删除,获取对话人id,只要你能想得到的,都在文档中可以明显得查找到。

 

 

 

猜你喜欢

转载自blog.csdn.net/niumanxx/article/details/108535120