iOS 消息服务库

概述

评论消息库是用来订阅消息的开发工具包,为开发者提供简单易用的接口,可以很方便地接收和发送消息信息。

开发准备

环境要求

  • iOS8.0 及以上 iphone5 及以上
  • XCode6.0 以上版本
  • 支持 ARMv7、ARMv7s 或 ARM64

集成 SDK

  1. XCode 创建一个 iOS 应用工程。

  2. 将 MuduComment.framework, MuduLibrary.framework文件拖至项目中

  3. 将 SDK 中的头文件 MuduComment.h 包含到工程中。

快速开发

一、MDCommenter(评论)类使用

1、导入头文件

#import <MuduComment/MuduComment.h>
#import <MuduLibrary/MuduLibrary.h>

//设置是否支持本地日志记录
[MDLogManager setLogEnable:NO];
//设置日志等级
[MDLogManager setLogLevel:MDLogLevel_None];

2、设置account key,若没有account key,请联系客服咨询。注:替换原来MDCommenter的静态方法。

[MDConfigure setAccountKey:@""];

3、创建评论管理对象,初始化评论对象,传入频道hash id(可从频道详情接口获取到actId)

[MDConfigure setActivityId:@"频道hashid"];

// 下面方式已弃用,请使用全局配置
//[[MDCommenter instance] initWithActId:@"频道hashid"];

4、设置登录,使用昵称和头像地址进行登录

[[MDCommenter instance] login:@"用户昵称" avatar:@"用户头像" callback:^(NSString *data, NSError *err) {
//data:OK
}];

5、注册评论消息回调监听并订阅频道


[[MDCommenter instance] setMessageDelegate:self];

delegate实现
?```objc

- (void)onReceiveError:(NSInteger)errorCode withMessage:(NSString *)message
{
    //内部错误通知,根据业务进行重新登录操作
}

-(void)onReceiveMessage:(id)commenter withMessage:(NSDictionary *)message withEvent:(NSString *)event
{
    //除评论消息外的其他消息
    NSLog(@"message event = %@", event);
    NSLog(@"message = %@", message);
}

-(void)onReceiveComment:(id)commenter withComment:(MDMessageEntity *)mesasgeEntity withEvent:(NSString *)event
{
    //评论消息
    NSLog(@"头像 = %@", mesasgeEntity.content.avatar);
    NSLog(@"昵称 = %@", mesasgeEntity.content.username);
    NSLog(@"内容 = %@", mesasgeEntity.content.message);
}

6、发布评论,需要登录后才能发布评论

[[MDCommenter instance] publishMessage:message callback:^(NSString *data, NSError *err) {
    if(err == nil) {
        //data:{"id":xxxx}
        NSLog(@"发送成功");
    } else {
        //发送失败
        NSLog(@"%@", err.description);
    }
}];

7、退出页面时调用, 重要!

//全局销毁,包括 MDCommenter,MDActivityManager
[MDConfigure destroy];

// 下面方式已弃用,退出页面请使用全局销毁
// [[MDCommenter instance] close];

二、MDActivityManager(频道)类使用

请提前设置频道Hash ID。 [MDConfigure setActivityId:@"频道hashid"];

1、获取频道信息

/*
 *  realTime: 是否实时获取频道信息,设置YES会实时请求,获取当前实时直播状态;设置NO会从缓存响应中获取。
 */
[[MDActivityManager instance] activityInfo:NO withBlock:^(id manager, id _Nullable data, NSError *_Nullable error) {
    if(!error){
        // data kind is NSDictionary
    }else{
        // error
    }
}];

2、获取拉流地址

// 需实现 MDActivityLiveDelegate 代理
[[MDActivityManager instance] setDelegate:self];
[[MDActivityManager instance] liveAddress];

实现MDActivityLiveDelegate

//列表直播地址
-(void)onAddress:(id)manager atListLive:(NSString *)address;
//常规直播地址, MDLiveEntity见对象说明
-(void)onAddress:(id)manager atLive:(NSArray<MDLiveEntity *> *)list;
//错误
-(void)onLiveError:(NSError *)error;

接口对象说明

MDCommenter

评论收发管理对象

成员对象属性 类型 说明
userInfo NSDictionary 已登录用户信息
isConnect BOOL 消息服务是否正常连接
messageDelegate id<MDMessageDelegate> 消息接收回调代理
成员方法 功能
+ (MDCommenter *)instance 获取对象实例
- (void)oauth2Login:callback: oauth2登录,需要通过与服务端交互获取ticket进行授权登录
- (void)login:avatar:callback: 匿名登录(头像可选设置,不设置则为默认头像)
- (void)loginByOther:callback: 第三方授权平台登录(weixin/qq/weibo等)
- (void)loginByToken:callback 已有token登录
- (void)publishMessage:callback: 发布评论消息
- (void)getCommentList:callback: 获取历史评论列表 回调id类型为 MDMessageListEntity
- (void)getToken 获取已登录用户token
- (void)getSessionId 获取已登录信息session id
- (void)reconnect 重连,接收onReceiveError:withMessage:回调时,根据具体业务判断是否需要重连
- (void)close 销毁

MDActivityManager

频道相关管理对象

成员对象属性 类型 说明
activityInfo NSDictionary 频道信息引用
delegate id<MDActivityLiveDelegate> 获取直播拉流地址回调代理
成员方法 功能
+ (MDActivityManager *)instance 获取对象实例
- (void)activityInfo:withBlock: 获取频道信息, realTime:实时获取
- (void)liveAddress 获取频道直播拉流地址(包含常规直播和列表直播)

消息类对象说明

MDMessageListEntity

评论列表对象

对象属性 类型 说明
pageIndex int 当前页数
size int 每页数量
total int 消息总数
messageList NSArray<MDMessage *> 消息列表

MDMessageEntity

评论消息管理对象

对象属性 类型 说明
msgType NSString 消息类型
serviceType NSString 服务类型
action NSString 评论功能类型 comment,danmu:评论与弹幕;highlight:弹幕高亮
content MDMessage 评论消息对象

MDMessage

评论消息对象

对象属性 类型 功能
isAdmin BOOL 是否是管理员消息
msgType int 消息类型
priority int 优先级
id int 消息id
userHashId NSString 用户hash id
userId int 用户id
dateline NSString 消息时间
username NSString 评论者昵称
message NSString 评论内容
avatar NSString 评论者头像

MDPlatformUser

第三方授权登录用户

对象属性 类型 功能
nick NSString 用户昵称
avatar NSString 用户头像
type MDSupportPlatform 第三方授权平台枚举
Platform_Weixin 授权平台类型:weixin
Platform_QQ 授权平台类型:qq
Platform_Weibo 授权平台类型:weibo
Platform_Dingding 授权平台类型:dingding
Platform_WeixinUnion 授权平台类型:weixin公众号
Platform_Assign 授权平台类型:其他
openId NSString 第三方授权平台获取的openid
phone NSString 手机号
expireTime NSInteger 授权过期时间戳(单位:秒)

频道类对象说明

MDLiveEntity

直播流地址对象

对象属性 类型 功能
lineName NSString
resolutions NSArray<MDResolutionEntity *> 不同分辨率封装列表

MDResolutionEntity

不同分辨率地址

对象属性 类型 功能
resolution NSString 分辨率(清晰程度)名称
pullAddress NSString 直播拉流地址

results matching ""

    No results matching ""