快速开始

本节提供快速集成易视云iOS消息系统SDK的步骤和示例代码。具体可参考demo中相关代码。

开发环境配置及系统要求

  • 开发工具:Xcode 8.3 + 下载地址
  • 系统要求:iOS 8 +
  • 为了缩减 SDK 文件大小,移除了虚拟机架构的支持,请使用真机运行

前置条件

  • 已经注册易视云账号,以下文档中统称为APPID
  • 申请开通消息系统权限,获得Access Key和Secret Key,用于鉴权

导入SDK

导入对应的 framework:

- EVSDKBaseFramework.framework
- EVMessageFramework.framework
- EVSocket.framework

注:其中 EVSocket.framework 为动态库,需要添加到项目工程 TARGETS->General->Embedded Binaries 中,否则运行应用时控制台会输出 image not found 的错误

工程配置

网络配置

由于SDK内部存在鉴权的网络请求,所以需要打开配置ATS,在工程的info.plist中添加如下内容:

<key>NSAppTransportSecurity</key>
<dict>
   <key>NSAllowsArbitraryLoads</key>
   <true/>
</dict>

动态库配置

  • project->targets->General->Embedded Binaries 点击加号(+),添加EVSocket.framework
  • project->targets->Build Settings 搜索:Always Embed Swift Standart Libraries,设置其为YES

示例代码

初始化SDK流程

在初始视图控制器中添加引用

#import "EVSDKManager.h"

在当前视图控制器进行SDK初始化操作,需要传入参数appid、appkey、appsecret、userid

[EVSDKManager initSDKWithAppID:appid appKey:appkey appSecret:appsecret userID:userid];

添加初始化SDK后的回调通知

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(initSDKError:) name:EVSDKInitErrorNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(initSDKSuccess) name:EVSDKInitSuccessNotification object:nil];

初始化成功后,即可进行其他操作。

使用消息系统

  • 设置当前消息系统视图控制器为代理
[EVMessageManager shareManager].delegate = self;
  • 开始回话前,首先建立连接,加入某一频道,connect成功后会回调- (void)EVMessageConnected
[[EVMessageManager shareManager] connect:channel];
  • 在已加入的频道中发送消息,可以根据需求透传附加消息userData,userData的格式是一个字典
[[EVMessageManager shareManager] sendWithChannel:channel message:message userData:customUserData type:EVMessageTypeMsg result:^(NSDictionary *response, NSError *error) {
    // 发送消息的block回调,error为nil则成功
}];
  • 发送点赞操作,点赞数为10
[[EVMessageManager shareManager] addLikeCountWithChannel:channel count:10 result:^(NSDictionary *response, NSError *error) {
    // 发送点赞的block回调,error为nil则成功
}];
  • 获取最近20条的历史消息
[[EVMessageManager shareManager] getLastHistoryMessageWithChannel:channel count:20 type:EVMessageTypeMsg result:^(NSDictionary *response, NSError *error) {
    // 获取历史消息的block回调,error为nil则成功,并可获取response中的历史消息内容
}];
  • 离开当前频道
[[EVMessageManager shareManager] leaveWithChannel:channel result:^(NSDictionary *response, NSError *error) {
    // 发送离开频道的block回调,error为nil则成功
}];
  • 关闭连接
[[EVMessageManager shareManager] closeConnect];
  • 消息系统操作回调方法
#pragma mark - EVMessageProtocol
- (void)EVMessageConnected {
    // 连接成功
}

- (void)EVMessageConnectError:(NSError *)error {
    // 连接错误
}

- (void)EVMessageDidCloseWithCode:(EVMessageErrorCode)code reason:(NSString *)reason {
    // 连接关闭
}

- (void)EVMessageRecievedNewMessageInChannel:(NSString *)channel sendedFrom:(NSString *)userid message:(NSString *)message userData:(NSDictionary *)userData {
    // 收到了新的消息
}

- (void)EVMessageUsers:(NSArray<NSString *> *)userids joinedChannel:(NSString *)channel {
    // 有用户加入了当前频道
}

- (void)EVMessageUsers:(NSArray<NSString *> *)userids leftChannel:(NSString *)channel {
    // 有用户从当前频道离开
}

- (void)EVMessageDidUpdateLikeCount:(long long)likeCount inChannel:(NSString *)channel {
    // 更新like数
}

- (void)EVMessageDidUpdateWatchingCount:(NSInteger)watchingCount inChannel:(NSString *)channel {
    // 更新正在观看的人数
}

- (void)EVMessageDidUpdateWatchedCount:(NSInteger)watchedCount inChannel:(NSString *)channel {
    // 更新已经观看的人数
}

results matching ""

    No results matching ""