基础进阶

更新时间:2021-05-25

概述

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

进阶使用

金融系统

1. 订单充值回调

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

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

charge

回调方法
/**
    * activity              activity
    * source                order type
    * requestCode           recharge status
    * orderId               orderId
    */
public void onBuyGoldWithOrderId(Activity activity,int source,int requestCode,String orderId);

2. 获取当前用户的金币余额

/**
  * Get the current user's gold coin balance
  * @param goldBalanceCallback: goldBalanceCallback  Callback interface
  * @param status  status
  * @param error  error msg
  * @param goldBalance  gold coin balance
  * void onResult(int status, String error, int goldBalance);
  */
LinkliveSDK.getInstance().queryGoldBalance(goldBalanceCallback);

3. 刷新当前金币数

一般在接入方充值成功之后调用,传入当前用户当时的金币数量

/** Refresh the current number of gold coins
  * @param current_gold Current number of gold coins
  */
LinkliveSDK.getInstance().refreshCurrentGold(int current_gold);

分享功能

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

回调方法

  • 接入方实现此回调方法,在此回调方法中实现分享功能。
/**
 * 分享代理回调方法
 * @param activity                  activity
 * @param linkliveShareInfo         Sharing data examples
 * @param iShareCallback            Sharing status callback
 **/
public void shareWithContent(Activity activity, LinkliveShareInfo linkliveShareInfo, IShareCallback iShareCallback);

分享数据

LinkliveShareInfo

public class LinkliveShareInfo {
    // 媒体id
    private String videoId;

    // 主播名字
    private String userName;

    // 资源类型, 1: live room 2: h5
    private int source;

    // 标题
    private String title;

    // 内容
    private String content;

    // 链接url
    private String url;

    // 播主头像
    private String captureUrl;

    // 类型,1:分享来自于其他人,2:分享来自于自己
    private int type;
}

推送功能

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

调用示例

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

LinkliveSDK.getInstance().routeWithUri(getContext(), path);

数据埋点

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

回调方法

/**
 * Data buried point
 * @param kewlDataTrackModel     Data buried point model
 **/
public void onDataTrack(KEWLDataTrackModel kewlDataTrackModel);

透传数据埋点类型

//透传数据模型
public class KEWLDataTrackModel {

    // 看播
    public static final int DataTrackActiveWatchLive = 1;
    
    // 送礼
    public static final int DataTrackActiveSendGift = 2;
    
    // 关注
    public static final int DataTrackActiveFollow = 3;
    
    // 首页tab点击
    public static final int DataTrackActiveTabClick = 4;
    
    // 排行榜点击
    public static final int DataTrackActiveRankClick = 5;
    
    // 使用滤镜
    public static final int DataTrackActiveUseFilter = 6;
    
    // 点击开播按钮
    public static final int DataTrackActiveLiveClick = 7;
    
    // 开播权限授权状态
    public static final int DataTrackActiveRequestPermission = 8;
    
    // 开始直播
    public static final int DataTrackActiveStartLive = 9;
    
    // 主播分享直播
    public static final int DataTrackActiveBroadCasterShare = 10;
    
    // 成功修改个人信息
    public static final int DataTrackActiveProfileModifySucc = 11;
    
    // 拉流成功
    public static final int DataTrackActivePullStreamSucc = 12;
    
    // 发送评论
    public static final int DataTrackActiveSendComment = 13;
    
    // 点击礼物面板
    public static final int DataTrackActiveGiftPanelClick = 14;
    
    // 送礼成功
    public static final int DataTrackActiveSendGiftSucc = 15;
    
    // 观众分享直播
    public static final int DataTrackActiveCustomerShare = 16;
    
    // 榜单页点击关注
    public static final int DataTrackActiveRankPageFollowClick=17;
}

透传数据模型类

public class KEWLDataTrackModel {

    // required
    // 上报类型
    public int type;
    
    // 用户id
    public String uid;
    
    // 用户区域
    public String user_area;

    // Watch Live
    // 直播id
    public String watch_live_video_vid;
    
    // 主播昵称
    public String watch_live_broadcaster_nick_name;
    
    // 主播性别
    public String watch_live_broadcaster_gender;
    
    // 主播年龄
    public String watch_live_broadcaster_age;

    // Send Gift
    // 礼物id
    public String send_gift_id;
    
    // 礼物价格
    public String send_gift_price;

    // Follow/UnFollow
    // follow状态,(关注还是取消关注)
    public boolean follow_is_follow;
    
    // 被关注性别
    public String follow_followers_gender;
    
    // 被关注年龄
    public String follow_followers_age;

    // 拉流的流id
    public String pull_stream_succ_vid;
    
    // 评论id
    public String send_comment_vid;
    
    // 礼物面板点击的礼物id
    public String panel_click_vid;
    
    // 成功送出的礼物id
    public String send_gift_succ_gift_id;
    
    // 成功送礼的直播id
    public String send_gift_succ_vid;
    
    // 被观众分享的直播id
    public String customer_share_vid;

    // Tab Click
    // 被点击的tab名字
    public String tab_click_tab_name;

    // User Filter
    // 滤镜名字
    public String use_filter_filter_name;

    // Request Permission
    // request_permission_per_type = 1 Camera
    // request_permission_per_type = 2 Micro
    // 权限类型(摄像头,麦克风)
    public String request_permission_per_type;

    // Rank Page Follow Click
    // 榜单页面点击关注还是取消关注
    public boolean rank_page_follow_click_follow_status;
    
    // 榜单中被关注的uid
    public String rank_page_follow_click_follow_uid;
}

私信

SDK 提供了私信的功能,可调用 SDK openMessageList 方法打开私信列表页面,具体是否开启私信功能可通过开发者平台进行配置,联系 LinkV 进行开启功能。

调用示例

1. 调用该方法,进入 私信列表页面

LinkliveSDK.getInstance().openMessageList(Context context);

2.设置私信未读消息的回调

/**
  * Set the callback of unread messages in private messages
  * @param listener Unread message monitoring
  */
LinkliveSDK.getInstance().setChatUnReadNumListener(UnReadListener unReadListener);
回调方法

未读消息数字

// update unread message number callback
// @param number chat unred number
public void updateNum(int unReadNum);

3. 获取私信 消息未读 数字

/**
  * Get private messages Number of unread messages
  */
LinkliveSDK.getInstance().getChatUnReadNum();