基础进阶

更新时间:2021-05-25

概述

本文主要介绍了 SDK 的进阶功能,包括金融、分享,推送、数据埋点等相关的处理。

进阶使用

金融系统

想要使用充值和送礼等金融功能,需要打通 SDK 和接入方的金融系统。

SDK 提供了一个回调代理,点击 SDK 中充值按钮,SDK 会生成订单,然后会把订单号通过 onBuyGoldWithOrderId 代理方法抛出去。

charge

代理方法

/**
 * orderId 订单id
 * source 订单类型
 * success 充值状态
 * coinCount 充值金币数量
 **/
- (void)onBuyGoldWithOrderId:(NSString *)orderId source:(LMRechargeSource)source completion:(void (^)(BOOL success, NSInteger coinCount, NSString * orderId) )completionBlock;

分享功能

SDK 支持分享功能,SDK 提供分享所需要的数据,分享功能需要在接入方客户端进行实现 shareWithContent 代理方法完成分享。

代理方法

  • 接入方实现此代理方法,在此代理方法中实现分享功能。
/**
 * @desc 分享代理回调方法
 * @param shareContent 分享数据实例
 * @param superView 分享面板展示容器视图
 **/
- (void)shareWithContent:(LMVideoShareContent *)shareContent superView:(UIView *)superView;

分享数据

LMVideoShareContent

@property (nonatomic, copy) NSString            *subject;    /* 标题 */
@property (nonatomic, copy) NSString            *content;    /* 内容 */
@property (nonatomic, copy) NSString            *contentURL; /* 链接url */
@property (nonatomic, copy) NSString            *imageURL;   /* 图片链接 */
@property (nonatomic, strong) NSString  *vid;          /* 媒体id */    
@property (nonatomic, strong) NSString  *streamerName; /* 主播名字 */
@property (nonatomic, assign) NSInteger sourceType;    /* 资源类型 */
@property (nonatomic, strong) UIImage           *image;      /* 图片 */
@property (nonatomic, strong) NSURL           *videoUrl;   /* 视频url */
@property (nonatomic, assign) CMLShareContentType   type; 

数据埋点

SDK 目前已经通过代理方法 onDataTrack 对一些关键的数据回调给接入方,接入方可以针对数据做埋点统计等。

代理方法

- (void)onDataTrack:(KEWLDataTrackModel *)dataTrackModel;

数据信息

@interface KEWLDataTrackModel : NSObject

/* required */
@property (nonatomic, assign) DataTrackType type;                            /*上报类型 */
@property (nonatomic, copy) NSString        *uid;                                /* 用户id */
@property (nonatomic, copy) NSString        *user_area;                          /* 用户区域 */

/* Watch Live */
@property (nonatomic, copy) NSString    *watch_live_video_vid;                  /* 直播id */
@property (nonatomic, copy) NSString    *watch_live_broadcaster_nick_name;      /* 主播昵称 */
@property (nonatomic, copy) NSString    *watch_live_broadcaster_gender;         /* 主播性别 */
@property (nonatomic, copy) NSString    *watch_live_broadcaster_age;            /* 主播年龄 */

/* Send Gift */
@property (nonatomic, copy) NSString    *send_gift_id;                          /* 礼物id */
@property (nonatomic, copy) NSString    *send_gift_price;                       /* 礼物价格 */

/* Follow/UnFollow */
@property (nonatomic, assign) BOOL  follow_is_follow;                         /* follow状态,(关注还是取消关注) */
@property (nonatomic, copy) NSString    *follow_followers_gender;               /* 被关注性别 */
@property (nonatomic, copy) NSString    *follow_followers_age;                  /* 被关注年龄 */

@property (nonatomic, copy) NSString    *pull_stream_succ_vid;                  /* 拉流的流id */
@property (nonatomic, copy) NSString    *send_comment_vid;                      /* 评论id */
@property (nonatomic, copy) NSString    *panel_click_vid;                       /* 礼物面板点击的礼物id */
@property (nonatomic, copy) NSString    *send_gift_succ_gift_id;                /* 成功送出的礼物id */
@property (nonatomic, copy) NSString    *send_gift_succ_vid;                    /* 成功送礼的直播id */
@property (nonatomic, copy) NSString    *customer_share_vid;                    /* 被观众分享的直播id */

@property (nonatomic, copy) NSString *tab_click_tab_name;                       /* 被点击的tab名字 */
@property (nonatomic, copy) NSString *use_filter_filter_name;                   /* 滤镜名字 */

@property (nonatomic, copy) NSString *request_permission_per_type;              /* 权限类型(摄像头,麦克风) */

@property (nonatomic, assign) BOOL  rank_page_follow_click_follow_status;       /* 榜单页面点击关注还是取消关注 */
@property (nonatomic, copy) NSString    *rank_page_follow_click_follow_uid;       /* 榜单中被关注的uid */
@end

推送功能

SDK 提供自定义推送功能,需要由 我方服务端 调用 接入方服务端 实现相关推送,可实现主播开播提示发送通知,点击通知栏进入直播间,私信消息通知,功能等。可具体联系 LinkV 商务人员,进行了解对接推送功能。

调用示例

接入方客户端收到推送的 url 后,触发 routeWithURI 方法,打开直播间。

[[LinkliveSDK sharedInstance] routeWithURI:path];