SDK接口说明

2.1 获取Sdk实例方法

ULUManager.getInstance().XXXX();

2.2 Sdk初始化接口(必接)

首先,您需要在程序开始的地方通过调用init方法初始化ULU_SDK。 在初始化失败的状态下,游戏 不应 继续调用SDK的其余API,此方法必须在UI线程中调用。 游戏启动后,在初始化失败或异常情况下, 不允许多次调用初始化接口

2.2.1 方法定义

void init(Activity activity, String clentId, ULUListener uluListener )
参数 说明
activity 游戏的Activity对象,不可为null。
clentId 游戏gameId,请参考参数表
uluListener 游戏初始化,登录以及退出的成功和失败回调

2.3 添加生命周期接口(必接)

请在游戏Activity生命周期接口中调用ULU_SDK所需生命周期接口,所有接口请务必都有调用。

  • 代码示例:
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
        ULUManager.getInstance().activityOnCreate(this);
  }

  @Override
  protected void attachBaseContext(Context newBase) {
      super.attachBaseContext(newBase);
      //ULUAttachBaseContext()
      ULUManager.getInstance().ULUAttachBaseContext(newBase);
  }


  @Override
  protected void onActivityResult(int requestCode, int resultCode, Intent data) {
      super.onActivityResult(requestCode, resultCode, data);
      //ULUOnActivityResult()
      ULUManager.getInstance().ULUOnActivityResult(requestCode, resultCode, data);

  }


  @Override
  public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
      //ULUOnRequestPermissionsResult()
      ULUManager.getInstance().ULUOnRequestPermissionsResult(requestCode,permissions,grantResults);
  }

  @Override
  protected void onStart() {
      super.onStart();
      //ULUOnStart()
      ULUManager.getInstance().ULUOnStart(this);
  }

  @Override
  protected void onStop() {
      super.onStop();
      //ULUOnStop()
      ULUManager.getInstance().ULUOnStop(this);
  }

  @Override
  protected void onPause() {
      super.onPause();
      //ULUOnPause()
      ULUManager.getInstance().ULUOnPause(this);
  }

  @Override
  protected void onResume() {
      super.onResume();
      //ULUOnResume()
      ULUManager.getInstance().ULUOnResume(this);
  }

  @Override
  protected void onDestroy() {
      super.onDestroy();
      ULUManager.getInstance().activityOnDestroy(this);

  }

2.4 登录接口(必接)

游戏接入时可选游客登录进行测试,

2.4.1 方法定义

void login()

2.4.2 代码示例

//请在UI线程调用登录接口
ULUManager.getInstance().login();

2.5 注销登录接口(选接)

SDK用户中心内已有注销登录功能,不建议游戏另外设置游戏退出接口,按需接入。

2.5.1 方法定义

void logout(ULUListener uluListener)

2.5.2 参数说明

参数 说明
uluListener 此回调与init接口回调相同,建议复用init回调

2.5.3 代码示例

ULUManager.getInstance().logout(new ULUListener() {
    @Override
    public void onInitSuccess() {
    }

    @Override
    public void onInitFail(String errorMsg) {
    }

    @Override
    public void onLogoutSuccess() {
        //退出成功回调
    }

    @Override
    public void onLogoutFail(String erroMsg) {
        //退出失败回调
    }

    @Override
    public void onLoginSuccess(ULUUser uluUser) {
    }

    @Override
    public void onLoginFail(String erroMsg) {
    }
});

2.6 支付接口(必接)

2.6.1 方法定义

 void pay(ULUOrder uluOrder, ULURole uluRole, ULUPayListenter uluPayListenter)

2.6.2 参数说明

参数 说明
uluOrder SDK创建订单所需参数,不可传null
uluRole 支付时角色相关参数,不可传null
uluPayListenter 支付成功回调:onPaySuccess,返回参数orderId(订单号),extraData(游戏扩展参数)
支付失败回调:onPayFail,返回参数orderId(订单号),errorMsg(错误信息),extraData(游戏扩展参数)

2.6.3 代码示例

ULUOrder uluOrder=new ULUOrder();
uluOrder.setExtraData("游戏支付扩展参数,不需要可传"",不可传null");
uluOrder.setUluProductId("商品id,请在内购项清单中查看");

ULURole uluRole=new ULURole();
uluRole.setRoleName("角色名称,不可为空");
uluRole.setServerName("服务器名称,不可为空");
uluRole.setServerId("服务器ID,不可为空");
uluRole.setRoleId("角色ID,不可为空");
ULUManager.getInstance().pay(uluOrder,uluRole,new ULUPayListenter() {

    @Override
    public void onPaySuccess(String orderId,String extraData) {
           //支付成功
        //母包点击支付,不会跳转支付,直接返回支付成功
    }

    @Override
    public void onPayFail(String orderId, String errorMsg,String extraData) {
        //支付失败回调
    }
});

2.7 进入用户中心(必接)

研发需要在游戏内自行添加用户中心按钮并调用此接口。

2.7.1 方法定义

void openUserCenter(ULURole uluRole, int orientation)

2.7.2 参数说明

参数 说明
uluRole 打开用户中心时角色相关信息
orientation 打开用户中心时界面的方向

2.7.3 代码示例

uluRole = new ULURole();
uluRole.setRoleLevel("角色等级,不可为空");
uluRole.setRoleName("角色名称,不可为空");
uluRole.setServerName("服务器名称,不可为空");
uluRole.setServerId("服务器ID,不可为空");
uluRole.setVipLevel(1); //vip等级,如没有VIP等级机制可传0
uluRole.setRoleId("角色ID,不可为空");
ULUManager.getInstance().openUserCenter(uluRole, ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);//示例用方向为竖屏,横屏一般为SCREEN_ORIENTATION_SENSOR_LANDSCAPE,可按照自身需求修改

2.8 查询内购项商品信息(选接)

谷歌推荐位要求游戏内购项显示币种需和玩家所在地区一致,所以提供此接口用于查询内购项相关信息给需要的开发团队。建议游戏按币种配置内购显示价格表,如果查询到的币种在配置币种内则显示对应币种,如查询币种不在配置币种表内或查询商品失败,则显示默认币种,注意,此接口只适用于谷歌渠道包

2.8.1 方法定义

void getProductList(ArrayList<String> uluProductIds, ULUGetProductListener uluQueryProductListener)

2.8.2 参数说明

参数 说明
uluProductIds 游戏商品ID,请勿传入限时类的商品ID
uluQueryProductListener 查询商品信息成功回调:onQuerySuccess,返回参数list(商品信息列表)
查询商品信息失败回调:onQueryFail,返回errorMsg(错误信息)

2.8.3 代码示例

ArrayList<String> skuList = new ArrayList<String> ();
skuList.add("商品ID");
ULUManager.getInstance().getProductList(skuList, new ULUGetProductListener() {
    @Override
    public void onQuerySuccess(List<ULUProduct> list) {
        //查询商品信息成功回调
        //获取商品币种
        String currency = uluProducts.get(0).getPayCurrency(); 
    }


    @Override
    public void onQueryFail(String errorMsg) {
        //查询商品信息失败回调,游戏应展示默认价格
    }
});

2.9 打开客服中心接口(必接)

研发需要在游戏内自行添加客服中心按钮并调用此接口。 客服新信息回调需要游戏确保Firebase推送服务畅通后可以尝试(选接)。

2.9.1 方法定义

void openCustomerService(ULURole uluRole, ULUOnCustomerServiceNewMessageListener listener)

2.9.2 参数说明

参数 说明
uluRole 打开客服中心时角色相关信息
listener 客服有新消息时的回调(选接)

2.9.3 代码示例

uluRole = new ULURole();
uluRole.setRoleLevel("角色等级,不可为空");
uluRole.setRoleName("角色名称,不可为空");
uluRole.setServerName("服务器名称,不可为空");
uluRole.setServerId("服务器ID,不可为空");
uluRole.setVipLevel(1); //vip等级,如没有VIP等级机制可传0
uluRole.setRoleId("角色ID,不可为空");
ULUManager.getInstance().openCustomerService(uluRole, new ULUOnCustomerServiceNewMessageListener() {
    @Override
    public void onCustomerServiceNewMessage() {
        //TODO 提示用户客服有新消息了,如在客服按钮上添加红点等。
    }
});

2.10 埋点接口(必接)

2.10.1 Application设置

请在游戏自定义Application的onCreate()方法中添加:SLSDatabaseManager.getInstance().setupDB(getApplicationContext());

  • 代码示例
public class 自定义application extends Application {
    @Override
    public synchronized void onCreate() {
        super.onCreate();
        //阿里日志服务初始化
        SLSDatabaseManager.getInstance().setupDB(getApplicationContext());
    }
}

2.10.2 方法定义

void uluTrackEvent(ULURole uluRole, String eventName, Map eventValues)

2.10.3 参数说明

参数 说明
uluRole 调用埋点接口时角色相关信息,如没有可传空
eventName 埋点需求表内打点名称,不可为空
eventValues 回传键值对,打点有明确要求需回传参数时必传,未明确可传空

2.10.4 代码示例

ULURole uluRole = new ULURole();
uluRole.setRoleLevel("角色等级");
uluRole.setRoleName("角色名称");
uluRole.setServerName("服务器名称");
uluRole.setServerId("服务器ID");
uluRole.setVipLevel(1); //vip等级,如没有VIP等级机制可传0
uluRole.setRoleId("角色ID");
Map<String,String> map=new HashMap<String,String>();
map.put("回传键","回传值");
ULUManager.getInstance().uluTrackEvent(uluRole,"打点名称",map);

2.11 礼包兑换功能(选接)

2.11.1 方法定义

void GiftPackDialog(Activity activity, ULURole uluRole)

2.11.2 参数说明

参数 说明
activity 游戏的Activity对象,不可为null。
uluRole 调用礼包接口时角色相关信息

2.11.3 代码示例

ULURole uluRole = new ULURole();
uluRole.setRoleLevel("角色等级");
uluRole.setRoleName("角色名称");
uluRole.setServerName("服务器名称");
uluRole.setServerId("服务器ID");
uluRole.setVipLevel(1); //vip等级,如没有VIP等级机制可传0
uluRole.setRoleId("角色ID");
ULUManager.getInstance().GiftPackDialog(MainActivity.this,uluRole);

2.12 问卷调查功能(选接)

此功能需游戏服务端接入礼包功能才能发放奖励

2.12.1 方法定义

void openQuestionWeb(ULURole uluRole)

2.12.2 参数说明

参数 说明
uluRole 调用问卷接口时角色相关信息

2.12.3 代码示例

ULURole uluRole = new ULURole();
uluRole.setRoleLevel("角色等级");
uluRole.setRoleName("角色名称");
uluRole.setServerName("服务器名称");
uluRole.setServerId("服务器ID");
uluRole.setVipLevel(1);    //vip等级,如没有VIP等级机制可传0
uluRole.setRoleId("角色ID");
ULUManager.getInstance().openQuestionWeb(uluRole);

2.13 聚合分享功能(选接)

2.13.1 方法定义

void setULUShareListener(ULUShareListener uluShareListener)

2.13.2 参数说明

参数 说明
uluShareListener 分享成功回调:onShareSuccess
分享失败回调:onShareFailed,返回errorMsg(错误信息)
分享取消回调:onShareCancel
intent传值:shareImageFile 分享图片,本地图片File,不可为空 图片要求2M以内的PNG/JPG/JPEG,1:1或者16:9/9:16
intent传值:shareText 分享文案,注意fb禁止设置默认文案,sdk会自动屏蔽
intent传值:shareLink 分享链接,可选,在fb与kakao分享生效,会覆盖配置中的ulu_kakao_shareurl项

2.13.3 代码示例

Intent intent = new Intent(MainActivity.this,ULUShareActivity.class);
intent.putExtra("shareImageFile", file);
intent.putExtra("shareText", "分享文案");
intent.putExtra("shareOrientation", ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);//分享界面方向
intent.putExtra("shareLink", "分享链接,比如https://www.google.com");
startActivity(intent);
ULUShareActivity.setULUShareListener(new ULUShareListener() {
    @Override
    public void onShareSuccess() {
        //分享成功回调
    }

    @Override
    public void onShareFailed(String errorMsg) {
        //分享失败回调及错误信息
    }

    @Override
    public void onShareCancel() {
        //分享取消回调
    }
});

2.14 谷歌评分功能(选接)

测试评分功能需要谷歌测试账号,非测试账号不能拉起,不管拉起成功还是失败都应该正常游戏,不能影响游戏进程

2.14.1 方法定义

void inAppReview()

2.14.2 方法调用

ULUManager.getInstance().inAppReview();

2.15 设置登录功能(选接)

用于唤起除了标准登录框以外的登录模式,在调用登录之前调用即可。 请注意LOGIN_MODE_EXTRA开头的为特定游戏定制模式,在未被通知前请勿使用LOGIN_MODE_EXTRA开头的模式

2.15.1 方法定义

void setLoginMode(int loginMode)

2.15.2 方法调用

ULUManager.getInstance().setLoginMode(ULUManager.LoginMode.LOGIN_MODE_NORMAL);//LOGIN_MODE_NORMAL为默认登录模式,与不调用此方法的表现相同

2.16 获得含有本地化的商品信息接口 (选接)

通过游陆商品id获得商品信息,如果游戏完全无法自行判断显示商品的币种等内容,可以调用此接口获得由我方后端判断的适配当前用户的商品信息。否则不需要调用此接口

2.16.1 方法定义

void getProductPriceByProductId(List<String> uluProductIdList, ULUGetProductPriceListener listener)

2.16.2 参数说明

参数 说明
uluProductIdList 游陆商品id的List
listener 接收回调的listener

2.16.3 代码示例

    List<String> tempList = new ArrayList<>();
    tempList.add("游陆商品id");//请根据商品表自行替换
    tempList.add("游陆商品id2");//请根据商品表自行替换
    ULUManager.getInstance().getProductPriceByProductId(tempList, new ULUGetProductPriceListener() {
        @Override
        public void onFailed(int errorCode) {
            //errorCode详情参考ULUManager中ERROR_CODE开头字段
            //-1为未知错误,-2为网络错误,-3为无对应数据
        }

        @Override
        public void onSuccess(List<ULUProductWithCurrency> productList) {
            //详情参考ULUProductWithCurrency类
            ULUProductWithCurrency product = produtList.get(0);//这里随便取了第一个用来做示例
            String uluProductCode = product.getUluProductCode();//游陆商品id,和传入的参数相同
            String productName = product.getProductName();//商品名称,例:一颗钻石
            String description = product.getDescription();//商品描述,例:这是一颗闪亮且价值连城的钻石
            String currency = product.getCurrency();//货币,例:TWD
            String mark = product.getMark();//货币符号,例:NT$
            String price = product.getPrice();//价格,例:100
            String productIcon = product.getProductIcon();//商品图标,例:https://www.picture001.com
        }
    }

2.17 获得当前用户绑定账号信息(选接)

在已登录的状态下获取当前用户的账号绑定信息,用于显示一些绑定相关的引导或奖励发放

2.17.1 方法定义

void getCurrentUserAccountBindInfo(ULUGetCurrentUserAccountBindInfoListener listener)

2.16.2 参数说明

参数 说明
listener 接收回调的listener

2.16.3 代码示例

ULUManager.getInstance().getCurrentUserAccountBindInfo(new ULUGetCurrentUserAccountBindInfoListener() {
    @Override
    public void onFailed(int errorCode) {
        //errorCode详情参考ULUManager中ERROR_CODE开头字段
        //-1为未知错误,-2为网络错误,-3为无对应数据
    }

    @Override
    public void onSuccess(ULUAccountBindInfo info) {
        String email = info.getEmail();//如果绑定了游陆账号,则可以获得注册邮箱
        String uid = info.getUid();
        boolean isBind = info.isAnyBind();//是否绑定了任意一种账号
        boolean isBindGoogle = info.isBindGoogle();//是否绑定了特定账号,如谷歌
    }
});

results matching ""

    No results matching ""