1 概念说明

频道:聊天、文档服务,依赖于频道。例如在使用文档演示时,需要先通过基础通讯服务创建一个频道。并将文档演示方与观看方连接至同一个频道。 消息发送也需要依赖频道的创建来进行消息传送。

智能垃圾过滤:开启智能垃圾过滤,可以为用户智能过滤掉聊天消息中的垃圾消息,帮助用户降低色情、暴恐、涉政等违规风险,节省人工审核成本。

2 接入准备

2.1 成为开发者

申请开通微吼云账号,提供用户资料,微吼服务人员在后台为用户开通平台账号,用户也可在微吼云网站自行注册账号,账号开通后,用户即可登录,成为一名开发者。

2.2 创建应用

登录微吼云平台后,控制台选择应用管理,进入应用管理页面点击创建应用,根据页面提示信息,完成应用创建。应用创建完成,您可以在控制台界面找到在应用管理界面您可以找到 AppID。

2.3 添加服务

应用创建完成后,选择添加服务,添加聊天服务,添加成功后可在聊天服务下聊天管理的【聊天配置】页面查看AppID

2.4 SDK下载

SDK下载

3 工程配置

3.1 支持平台

  • SDK支持iOS 8.0以上系统

3.2 开发环境

  • Xcode 8或更高版本
  • OS X 10.10或更高版本

3.3 Xcode工程设置

下面通过一个简单的iOS Application工程,说明如和在Xcode工程中配置SDK。

3.3.1 拷贝SDK文件

在本例中,新建一个名字叫做VHSDKDemo的iOS工程,将下载下来的文件夹拷贝至工程目录。目录结构如下图所示:

3.3.2 添加库和Framework

libc++.tbd
libz2.1.0.tbd
libicucore.tbd
libz.tbd
libiconv.tbd
CoreTelephony.framework
MediaPlayer.framework
AVFoundation.framework
VideoToolbox.framework
AssetsLibrary.framework
OpenAL.framework
OpenGLES.framework
QuartzCore.framework
CoreMedia.framework
Security.framework

3.3.3 工程设置修改

  • AppDelegate.m 文件名修改为AppDelegate.mm
  • Build Setting 中 Enable Bitcode 设置为NO
  • 设置Info.plist中 App Transport Security Settings -> Allow Arbitrary Loads 设置为 YES
  • 设置Info.pplist中 Privacy - Camera Usage Description 是否允许使用相机
  • 设置Info.pplist中 Privacy - Microphone Usage Description 是否允许使用麦克风

3.4 验证

下面在VHSDKDemo的代码中,调用SDK的接口,设置appID 获取SDK版本信息,以验证工程设置是否正确。

3.4.1 引用头文件

在AppDelegate.mm开头引用SDK的头文件:

#import "VHLiveBase.h"

3.4.2 添加调用代码

在application: didFinishLaunchingWithOptions:方法中添加代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [VHLiveBase registerApp:@"xxxxxxxxx"];//AppID:xxxxxxxxx
    [VHLiveBase setThirdPartyUserId:@"xxxxxxxx"];//第三方账号id:xxxxxxxx
    NSLog(@"SDK Version: %@",[VHLiveBase getSDKVersion]);
    return YES;
}

3.4.3 编译运行

如果前面各个步骤都操作正确的话,VHSDKDemo工程应该可以顺利编译通过。在Debug模式下运行APP,Xcode的Console窗格会打印出SDK的版本信息。

至此,工程配置完成。

4 注册APP

[VHLiveBase registerApp:@"xxxxxxxxx"];//AppID:xxxxxxxxx

5 设置第三方ID

[VHLiveBase setThirdPartyUserId:@"xxxxxxxx"];//第三方账号id:xxxxxxxx

6 LOG打印

在 VHLiveBase 中可以设置 log的级别,具体代码如下:

[VHLiveBase setLogLevel:VHLogLevelDebug];

7 获取channel_id、access_token

获取channel_idaccess_token

8 代码对接

8.1 创建IMSDK

SDK 中的 VHImSDK 模块负责实现 IM服务相关功能。

    NSString* channelID = @"xxxxxx";
    NSString* accessToken = @"xxxxxxxxxx";
    VHImSDK *_chatSDK = [[VHImSDK alloc]initWithChannelID:channelID accessToken:accessToken];

8.2 设置 delegate

  • delegate 设置IM代理
    _chatSDK.delegate = self;

8.3 发送聊天内容

现在支持最长消息 200字

[_chatSDK sendMessage:_msgTextField.text completed:^(NSError *error) {
            if(error)
                [wf showMsg:[NSString stringWithFormat:@"%ld%@",error.code,error.domain] afterDelay:2];
            else
                [wf showMsg:@"发送成功" afterDelay:2];
        }];

9 事件处理

9.1 接收聊天内容

/**
 *  接收IM消息
 *  @param imSDK IM实例
 *  @param message   IM消息
 */
- (void)imSDK:(VHImSDK *)imSDK receiveMessage:(VHMessage*)message;

9.2 错误回调

/**
 *  错误回调
 *  @param imSDK IM实例
 *  @param error    错误
 */
- (void)imSDK:(VHImSDK *)imSDK error:(NSError *)error;