云Talk(iOS)接入指南

启动SDK


安装和部署

欢迎使用iOS SDK,您可以按照下面步骤完成SDK的安装和部署。

Step 1 获取Access ID(appid) ,Access Key(appkey) ,Secret Key(seckey)

访问http://mta.qq.com,按照网站步骤提示注册云Talk应用,可获得Access ID,Access Key,Secret Key。


Step 2 向工程中导入SDK

下载统计SDK压缩包,解压至本地目录,将其中的SDK库,SDK头文件导入到您的XCode应用工程中。

Ø  SDK库,SDK头文件(.h文件)在解压开的sdk文件夹下

Ø  Xcode添加依赖系统库。如图所示:

Step 3 在代码中添加SDK的引用


#import “TIM.h”
#import “TIMConfig.h”
  #import “TIMMessage.h”
  #import “TIMVoice.h”


相关接口,需要在TIM.h接口前被调用才能及时生效。

TIM.h:IM相关接口,需要开发者主动调用。

TIMMessage.h:IM消息实体类, 标识某一条消息。

TIMVoice.h: IM录音、播放和发送相关接口。

应用需要在应用启动时在启动结束函数didFinishLaunchingWithOptions中调用SDK提供的启动方法[TIM start]完成SDK启动。注意start的参数替换为Step1申请的数据。

调用start方法启动SDK


+(void)start:(NSDictionary*)launchOptions appID:(uint32_t)appID appKey:(NSString*)appKey secKey:(NSString*)secKeysuccessCallback:(SuccessCallback)successBlock errorCallback:(ErrorCallback)errorCallback;


参数:launchOptions  didFinishLaunchingWithOptions的参数之一

         appID     网站注册获取的access ID

         appKey  网站注册获取的app Key

         secKey  网站注册获取的secKey

         successsBlock  成功的回调

         errorBlock  失败的回调                                                                 

注意:以下所有的接收消息的用户标识参数(toUserID),可以指单个用户的标识,也可以指群标识


用户操作

用户操作包括登录和注销。

用户登录

Ø  新用户登录,如果已经有用户登录,会替换当前用户。


+(void)login:(NSString*)loginUserID ticket:(NSString*)ticket successCallback:(SuccessCallback)successBlock errorCallback:(ErrorCallback)errorCallback;


参数:loginUserID  要登录的用户标识

         ticket     通过API获取的鉴权ticket

         successsBlock  登录成功的回调

         errorBlock  登录失败的回调


用户注销

注销当前已经登录的用户。


+(void)logout:(SuccessCallback)successBlock errorCallback:(ErrorCallback)errorCallback;


参数: successsBlock  注销成功的回调

             errorBlock  注销失败的回调


发送消息接口


发送消息的相关接口。收消息见第6小节。

发送接口

Ø  发送文本消息。


+(void)sendMessage:(NSString*)toUserID message:(NSString *)message type:(int)type successCallback:(MessageSuccessCallback)successBlock errorCallback:(ErrorCallback)errorCallback;


参数:toUserID  要接收消息的用户标识或者群标识

         message      具体的文本内容

         type       0:单聊  1:群聊

         successsBlock  发送成功的回调

         errorBlock  发送失败的回调


Ø  发送图片消息。


+(void)sendPic:(NSString*)toUserID img:(UIImage*)img isOriginal:(BOOL)isOriginal type:(int)type successCallback:(MessageSuccessCallback)successBlock errorCallback:(ErrorCallback)errorCallback;


参数:toUserID  要接收消息的用户标识或者群标识

         img        要发送的图片

         isOriginal    是否发送原图级别

         type       0:单聊  1:群聊

         successsBlock  发送成功的回调

         errorBlock  发送失败的回调


获取图片存储的URL前缀

Ø  http开头的地址。可以通过收到图片消息的json字符串配合获取图片完整下载地址。


+(NSString*)getPicURLPrefix;


参数:无

返回值: 比如http://a.com

 

获取本地数据接口


SDK会保存成功发送和接收的消息记录到本地。

获取当前登录的用户

+(NSString*)getLoginUser;

参数:无

返回:当前登录的用户标识


获取当前登录用户在会话conversationID的历史消息记录总数量


+(NSInteger)getLoginUserMsgCount:(NSString* )conversationID;



参数:conversationID   会话ID

返回:当前登录的用户在会话conversationID收发消息的总数量


获取当前登录用户在会话conversationID的分页消息记录(成功的记录)


+(NSArray*)getLoginUserMessages:(NSString*)conversationID pageIndex:(NSInteger)pageIndex pageSize:(NSInteger)pageSize;


参数:conversationID   会话ID

         pageIndex  分页索引,从0开始

         pageSize           分页大小

返回:TIMMessage对象数组


删除指定登录过的用户的所有本地数据


 +(void)deleteUserData:(NSString*)loginUserID;


参数:loginUserID 登录过的用户ID


删除指定登录过的用户的所有本地数据


+(void)deleteConversationIDData:(NSString*)loginUserID conversationID:(NSString*)conversationID;


参数:loginUserID 登录过的用户ID

         conversationID   会话ID


删除指定登录过的用户的所有本地数据


 +(void)deleteMessage:(TIMMessage*)message;


参数:message  TIMMessage对象


APNS相关接口


启用苹果推送服务需要调用的接口

苹果推送服务可以让APP没有打开的用户收到来自App的消息提醒。

iOS证书制作方法参考: 点我查看 ,除了需要APP在苹果开发者中心开启Push Notification之外,还需要.mobileprovision文件在APP开启push之后生成再下载导入到OS X系统。注意生成开发环境.mobileprovision的时候,已经勾选了要调试的设备。


注册设备

Ø  获取苹果下发的deviceToken,注意开发环境和生产环境下发的不同。建议app也保存一份备用。

在AppDelegate的didRegisterForRemoteNotificationsWithDeviceToken中调用


+(NSString*)registerDevice:(NSData*)deviceToken successCallback:(SuccessCallback)successCallback errorCallback:(ErrorCallback)errorCallback;


参数:deviceToken   事件的参数

         successCallback      注册成功的回调

         errorCallback    注册失败的回调

返回:规范化之后NSString格式的deviceToken。


点击iOS通知的反馈

(app在运行,包括前台和后台)

Ø  点击苹果推送通知时的记录,用于数据统计。

在AppDelegate的didReceiveRemoteNotification中调用


+(void)handleReceiveNotification:(NSDictionary*)userInfo;


参数:userInfo 事件的参数

返回:无


配置文件TIMConfig.h


配置文件可以修改一些SDK运行时的参数。

Ø  调试开关。

isDebugMode    是否查看调试的log

Ø  收到新消息的回调。

NewMsgCallback      

参数:msgList   TIMMessage对象数组

         loginUser 当前登录的用户标识

Ø  环境切换

envType      0:正式环境  1:联调环境



消息实体类TIMMessage.h 


收发的消息详情可以用一个实例类TIMMessage的对象标识。

Ø  消息ID

msgID    和某个用户标识收发消息的单条记录的标识

Ø  发件人。

fromUserID 发消息的人的标识

Ø  收件人或者群。

toUserID      收消息的人或者群的标识。根据会话类型不同含义:单聊时为收件人标识,群聊时为群标识。

Ø  会话ID

conversationID  会话ID

Ø  收发消息的时间(本地时间)

localUTime  uint64格式

Ø  收发消息的时间(本地时间)

localDate     NSDate格式

Ø  收发消息的时间(服务器时间)

serverUTime      uint64格式

Ø  收发消息的时间(服务器时间)

serverDate  NSDate格式

Ø  消息的内容

content  如果contentType为图片时,发送的消息为本地Documents下的图片存储路径,接收的消息为服务器保存的几种格式图片URL地址(如需下载图片,需要和3.2小节介绍的接口配合使用); 如果contentType为语音时,发送的消息为本地Documents下的语音存储路径,接收的消息为服务器保存的两种格式的URL地址(i代表iOS)

Ø  会话类型

type       0:单聊 1:群聊

Ø  本条消息是发送还是接收

isSend   true:发送

false:收到

Ø  内容类型

contentType      0:消息 1:图片 2:语音

Ø  如果是发送的消息,是否成功发送给服务器

hasSent

true:成功  false:失败

Ø  如果是语音消息,时长

dataDuration

语音时长(单位:秒)



目录

回到顶部