基础功能

更新时间:2020-10-16

概述

本文主要介绍了 SDK 功能中的常用功能和注意事项,例如初始化、登录和登出、获取直播列表、打开开播页、用户状态监测、跳转商品详情、获取购物车数量、跳转购物车页面、点击小窗、进入直播间、离开直播间、主动更新购物车数量等。

初始化SDK

注意:需要规范 LinkV电商直播SDK 初始化和调用方式,API 必须在 主进程 进行 初始化和调用API, 不能在 server进程 或 其它进程 进行 初始化和调用
  1. ApplicationonCreate方法中设置SDK监听回调对象。
  2. 设置完成SDK监听回调后,调用 SDK 初始化函数initSdk ,对 SDK 进行初始化操作。
  3. 实现必备接口agreePrivacyPolicyWithCompletion 隐私协议授权方法。

设置SDK监听回调对象

在使用 SDK 之前需要设置 SDK 监听回调,创建一个类(例如:LinkliveImpl)继承LinkliveInterfaceAbs类。

调用示例:

public class LinkliveImpl extends LinkliveInterfaceAbs {
   
}

创建完成后调用setLinkliveInterface方法进行设置SDK的监听回调。

调用示例:

public class MyApp extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        //Set SDK callback
        LinkliveSDK.getInstance().setLinkliveInterface(new LinkliveImpl());
    }
}

initSDK 初始化SDK

开发者平台 拿到appIDappSecret传入initSDK方法中,进行初始化SDK。

  • 调用示例
public class MyApp extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        //Set SDK callback
        LinkliveSDK.getInstance().setLinkliveInterface(new LinkliveImpl());

        //The appid and app_secret are obtained after the application is created by registering the developer platform. The appid and app_secret below are for testing purposes only
        String appID = getResources().getString(R.string.linklive_app_id);
        String appSecret = getResources().getString(R.string.linklive_app_secret);
        //initSDK
        LinkliveSDK.getInstance().initSDK(this, appID,appSecret ,new TokenCallback() {
            /**
             * Token invalid callback
             * @param url
             * @param status
             * @param rawResponse
             */
            @Override
            public void onTokenExpire(String url, int status, String rawResponse) {

            }
            /**
             * Call back this function when the current user is blocked in the live broadcast room.
             */
            @Override
            public void onUserBlocked() {

            }
        });
    }
}

实现必备回调方法

  • 因为在观看直播和开播功能中会对当前的隐私协议授权状态做校验,没有得到授权会影响以上功能的使用,如果想要正常使用 SDK 中的全部功能需要在 agreePrivacyPolicyWithCompletion 方法返回正确的隐私协议授权状态。
  • 调用示例
public class LinkliveImpl extends LiveMeLiveInterface {
   /**
     * Authorize the privacy agreement
     * @param activity              
     * @param confirmCallback       
     */
    public void agreePrivacyPolicyWithCompletion(Activity activity, OnTermConfirmCallback confirmCallback) {
        //Example
        confirmCallback.onTermConfirm(true);
    }
}

2. 登录账号

接入方 APP 在登录成功后,需要通过 server to server 交互 获取到 openIDtoken 后调用 SDK 接口进行绑定登录。具体获取 openID 和 token 可参考 服务端 SDK 集成 文档。

/**
 * Called when login LinkV acount server successfully
 * @param originUid origin user uid
 * @param openID LinkV openID
 * @param token LinkV user token
 */
LinkliveSDK.getInstance().onLoginSuccess(String originUid, String openID,String token);

// Called when the user logout
LinkliveSDK.getInstance().onLogout();

// login status check
LinkliveSDK.getInstance().isUserLogin();

3. 开始直播

开播过程中SDK会对当前客户端的摄像头和麦克风权限进行检测和申请,需要用户同意并授权才能使用直播功能,直播准备页面可以上传自定义直播封面、填写直播标题、选择直播标签、使用美颜滤镜开播。

/** Start broadcast
 * @param context   Context
 */
LinkliveSDK.getInstance().startBroadcast(Context context);

4. 跳转到指定直播间

SDK 提供 通过 vid 跳转到指定直播间的功能,传递 vid 给 SDK,SDK 会跳转到指定直播间。

/** Jump to the live room of the specified vid
 * @param context    Context
 * @param vid vid
 */
LinkliveSDK.getInstance().jumpToLiveRoom(Context context, String vid)

5. 关闭当前显示的直播间

//关闭当前显示的直播间
LinkliveSDK.getInstance().closeLiveRoom();

6. 获取个人信息

/**
 * Get personal information data
 * @return AccountInfo personal information data
 */
AccountInfo accountInfo = LinkliveSDK.getInstance().getAccountInfo();

7. 触发登录

当用户没有登录时,点击直播间关注、送礼等会触发该回调方法,需在该方法中实现登录的相关操作。

/**
 * Trigger login
 * @param activity  context 
 * @param flag 
 * @param from  The source of the previous page
 */
public void startLogin(Context activity, int flag, int from);

8. 跳转商品详情回调

当点击直播间商品列表的商品条目和购买时会触发该回调方法,可在该方法中根据商品数据实现跳转商品详情的操作。

/**
 * Jump to product details
 * @param context 
 * @param map Commodity data
 */
public void onClickCommodity(Context context, Map<String,Object> map);

9. 获取购物车数量回调

当进入直播间时SDK会触发该回调方法,需在该方法中把当前购物车的商品数量回调给SDK进行刷新购物车数量。

/**
 * Get the number of shopping carts
 * @param context 
 * @param map Commodity data
 */
public void onGetCartCount(Context context,OnCompletionCallback onCompletionCallback);

10. 跳转购物车页面回调

当点击购物车按钮时会触发该回调方法,可在该方法中实现跳转购物车页面的操作。

/**
 * Jump to shopping cart page
 * @param context 
 */
public void onClickCart(Context context);

11. 点击小窗回调

当从直播间跳转其他页面(比如跳转到商品详情页和跳转到购物车页面)时会显示小窗,可通过小窗观看直播。

当点击直播小窗时会触发该回调方法,可在该方法中实现点击小窗后的相关的操作。

/**
 * Click on the small window callback
 * @param context 
 */
public void onClickLiveStreamWindow(Context context);

12. 进入直播间回调

当进入直播间时会触发该回调方法,可在该方法中进行进入直播间的相关操作。

/**
 * Enter the live room
 * @param context 
 * @param lmLiveScebe 
 */
public void liveRoomWillAppear(Context context,LMLiveScebe lmLiveScebe);

13. 离开直播间回调

当离开直播间时会触发该回调方法,可在该方法中进行离开直播间的相关操作。

/**
 * Leaving the live room
 * @param context 
 * @param lmLiveScebe 
 */
public void liveRoomWillDisappear(Context context,LMLiveScebe lmLiveScebe);

14. 主动更新购物车数量

当需要主动更新购物车数量时(比如加入购物车后)可调用该方法,进行更新直播间购物车数量的操作。

/**
 * Update shopping cart quantity
 * @param count   Number of shopping carts
 */
 LinkliveUIUtil.updateShopCartCount(count);