Skip to content

常用接口

初始化(必接)

初始化接口

typescript
/**
 * 初始化小游戏sdk
 * @param appid 动能appid
 * @param appKey 动能appkey
 * @param offerId
 * @param cloudEnv
 * @param payRate 根据小游戏平台配置支付时设置的支付比例(1:1、1:10、1:100)确认传1、10、100
 * @param callBack
 * @param packageName //华为快应用需要传包名 非华为传null
 * @param gravityEngineToken //引力引擎token
 */
miniGameInit(appid: string, appKey: string, offerId: string, cloudEnv: string, payRate: number, callBack: Function, packageName?: string, gravityEngineToken?: string)

示例

DANGER

接入时H5动能appid和H5动能appkey需改为正式参数!!!

typescript
//示例
Wb.Core.miniGameInit("您的动能appid", "您的动能appkey", "米大师侧申请的应用ID", "云函数的环境ID", 10, (ret, openId, userCode) => {
        if (ret) {
            console.log('dnsdk初始化成功');
        } else {
            console.log('dnsdk初始化失败');
        }
    }, null, "");

统计(必接)

根据统计埋点文件使用合适接口上报游戏中产生的事件。

DANGER

转化行为activeactive_register事件必接!!!

1. 自定义事件(必接)

接口说明

typescript
tJCustomEvent(eventId: string): void
tJCustomEventLabel(eventId: string, label: string): void
tJCustomEventHashMap(eventId: string, attributes: string): void

事件说明

事件名称事件ID触发时机附加参数
游戏loading页面app_loading_show
游戏引擎初始化后就触发上报
游戏内首页app_home_show主页展示时

使用示例

typescript
//示例
Wb.Tj.tJCustomEvent("app_loading_show");
Wb.Tj.tJCustomEvent("app_home_show");

2. 转化行为上报(必接)

WARNING

注意:转化行为上报使用tJSendTrackingEvent接口!!!
SDK会本地缓存埋点记录,再上报会进行拦截

接口说明

typescript
/// <summary>
/// 转化行为上报
/// </summary>
/// <param name="eventId">事件id</param>
/// <param name="label">额外参数json字符串</param>
tJSendTrackingEvent(eventId: string, label: string): void
事件id事件定义data额外携带数据建议上报时机
active(自实现上报必接)激活


首次进入主页触发

active_register(自实现上报必接)

注册


完成角色创建后触发。如果没有角色创建过程,可跟active事件同时触发。

使用示例

typescript
Wb.Tj.tJSendTrackingEvent("active");
Wb.Tj.tJSendTrackingEvent("active_register");

3.关卡统计上报(必接)

接口说明

typescript
/// <summary>
/// 关卡开始
/// </summary>
/// <param name="level">关卡id</param>
startLevel(level: string): void 

/// <summary>
/// 关卡获胜
/// </summary>
/// <param name="level">关卡id</param>
/// <param name="score">得分</param>
finishLevel(level: string, score: string): void

/// <summary>
/// 关卡失败
/// </summary>
/// <param name="level">关卡id</param>
/// <param name="score">得分</param>
failLevel(level: string, score: string): void

事件说明

事件id事件定义data额外携带数据建议上报时机
begin开始levelid:关卡ID进入关卡
complete胜利levelid:关卡IDscore:得分关卡胜利
fail失败levelid:关卡IDscore: 得分关卡失败

使用示例

typescript
Wb.Tj.startLevel("3-1");
Wb.Tj.finishLevel("3-1""100");
Wb.Tj.failLevel("3-1""100");

4.用户行为统计上报

事件id事件定义data额外携带数据建议上报时机
online在线时长duration--时长(秒)用户切到后台或者杀掉进程时
setting_page_click设置页点击button_click:1用户反馈,2游戏圈,3微信客服设置页内点击按钮时(用户反馈,游戏圈、微信客服)
self_button_click大厅内点击button:1-点击购物车,2-点击跳转合成界面,3-点击任务栏,4-点击能量弹窗(各游戏需要自己定义数值)

大厅界面点击按钮时

5.分享/邀请统计上报

事件id事件定义data额外携带数据建议上报时机
分享help_share分享小程序分享小程序到会话时
点击求助好友按钮help_button_clickbonus_status:1领取成功,2领取失败 help_times_left: 剩余领取次数1,2,3点击求助好友按钮时
邀请invite_click点击邀请好友入口invite_number:邀请好友的数量 0,1,2...玩家在主页点击邀请好友入口时上报 (首次弹出时上报0)
点击加号邀请好友invite_click_plus/玩家在邀请好友界面点击加号时
点击领取奖励bonus_clickbonus_status:1领取成功,2领取失败点击领取奖励时

6.设置关卡和活动进度

WARNING

sdk上报stay_time事件时会携带下面设置的数据

接口说明

typescript
/// <summary>
/// 设置上报level_id参数
/// </summary>
/// <param name="levelId"></param>
SetTjLevelId(levelId: string): void

/// <summary>
/// 设置上报活动进度参数
/// </summary>
/// <param name="json">活动json格式的字符串</param>
SetTjActivityProgress(json: string): void

使用示例

typescript
Wb.Tj.SetTjLevelId("10");

Wb.Tj.SetTjActivityProgress("{\"activity_id\":10,\"activity_progress\":15,\"activity_bonus_id\":15,\"begain_time\":100,\"valid_time\":120}");

7.设置用户标识

WARNING

调用下面接口设置后,所有事件上报都会携带用户id

typescript
/// <summary>
/// 设置用户id
/// </summary>
/// <param name="userId">用户id</param>
setLoginId(id: string): void

使用示例

typescript
Wb.Core.setLoginId("123321");

广告(必接)

1. 打开广告

typescript
/// <summary>
/// 打开广告
 /// </summary>
/// <param name="adName">广告位名称</param>
/// <param name="callBackFun">广告关闭回调,状态0成功、1失败、2加载失败</param>
openAd(adName: string, callback: Function = null): void

示例

typescript
Wb.Ad.openAd("banner");
Wb.Ad.openAd("home_mfzs", (ret, data) => {
        console.log('打开视频广告 data = ' + JSON.stringify(data));
});

2. 广告是否缓存好

广告为实时加载方式(不缓存广告),调用接口直接返回true

typescript
/// <summary>
/// 广告是否缓存好
/// </summary>
/// <param name="adName">广告位名称</param>
isAdReady(adName: string): boolean

3. 某关卡是否可以打开该广告

typescript
/// <summary>
/// 某关卡是否可以打开该广告
/// </summary>
/// <param name="adName">广告位名称</param>
/// <param name="level">关卡id</param>
isAdBeOpenInLevel(adName: string, level: number): boolean

4. 关闭广告

typescript
/// <summary>
/// 关闭广告
/// </summary>
/// <param name="adName">广告位名称</param>
closeAd(adName: string): void

支付

1.支付接口

INFO

注:
1: 虚拟支付 1.0版本
2: 虚拟支付 2.0版本
3: SDK默认为1:10旧接口升级后参数要赋值给新接口PayParam对应字段!!!
custom字段为透传自定义数据字段,该字段会包含在订单信息中,有透传需求请使用该字段!!!

支付接口

typescript
/// <summary>
/// 小游戏支付
/// </summary>
/// <param name="info">支付参数</param>
/// <param name="func"></param>
miniPay(info: any, func: Function): void

调用示例

typescript
// id 计费点id
// price 金额(单位分)
// payDesc 商品描述,使用#拼接
// payCode 支付code,没有填写计费点payId
// giftId 礼包id,没有的话写计费点payId
// giftType 礼包类型
// giftNum 礼包数量,一次购买了几份,最小值为1
// giftPrice 礼包价值,没有可填写price金额值(单位分)
// levelId 有用户等级的传用户等级,没有用户等级的游戏传关卡id
// tokenType 代币类型(当礼包类型为代币礼包时,传参。否则传空串)
// custom 用户自定义数据代替userdata(截取16个字符赋值userdata),最长128个字符
// payPush 礼包推送:1主动点击;0被动推送
// userId 户的账号ID,无账号游戏为空。最长128个字符

//支付参数 (后方未注释必填的可不填)
let obj = {
    "id":"test1", //若无定义可直接填giftId
    "price":"100", // 必填 单位:分
    "payCode":"testcode",  // 必填
    "payDesc":"珍贵宝箱", // 必填
    "giftId":"giftId", // 必填
    "custom":"custom", // 自定义类型参数(可根据需要传递)
    "giftType":"giftType",
    "giftNum":"1",
    "levelId":"levelId",
    "tokenType":"1",
    "extParams": { // 此参数统计事件中会携带
        "value1":"1",
        "value2":"2" 
    }
};
  Wb.Pay.miniPay(obj, (result, info) => {
    console.log("支付测试 orderPay info = " + info);
    console.log("支付result ", result)
    this.label.string = info;
    if (result) {
        let param = JSON.parse(info);
        console.log("支付测试 充值到账上报");
        //@ts-ignore
        Wb.Tj.tJPayOnAccount(param.orderId);
        console.log("支付回调成功,上报pay_token_change")
        Wb.Tj.tJCustomEventLabel("pay_token_change", "");
    }
})

自测示例

虚拟支付2.0会进行验签请求,可通过日志查看

虚拟支付1.0不会进行验签请求,会直接拉起支付

2.上报到账事件和消单

INFO

游戏发奖的同时调用该接口上报充值到账事件,同时sdk会进行消单处理,整个支付流程结束。

typescript
/// <summary>
/// 充值到账后上报
/// </summary>
/// <param name="tradeId">订单id</param>
tJPayOnAccount(tradeId: string): void

3. 补单

适用场景:使用sdk支付

INFO

游戏在合适时机调用该接口设置补单回调,sdk会在游戏首次调用和onShow时,触发补单逻辑进行补单

设置补单回调,触发sdk中的补单逻辑。

typescript
/// <summary>
/// 设置补单回调
/// 调用该接口会触发sdk补单流程
/// 根据实际情况确认调用时机
/// </summary>
/// <param name="callFun">支付回调</param>
setInventoryCallBack(func: Function): void

Wb.Pay.setInventoryCallBack((payStatus, payId, userData, orderId) => {
    if (payStatus == true) {
        console.log("支付测试 充值到账上报");
        Wb.Tj.tJPayOnAccount(orderId);
    }
});

分享

分享策略名称由策划或运营提供。

1.主动分享

typescript
/// <summary>
/// 小游戏-主动分享接口
/// </summary>
/// <param name="shareName">分享策略名称</param>
/// <param name="userData">自定义数据使用'&'拼接</param>
shareAppMessage(shareName: string, userData: string, callBack: Function): void

//调用示例
Wb.Social.shareAppMessage("friend_share", userData, (ret) => {
    console.log("分享 shareAppMessage ret:", ret);
});

2. 点击右上角分享

点击右上角"..."进行分享触发前提是要先主动调用设置分享监听OnShareAppMessage,触发右上角分享时才会调用下面的设置。

typescript
/// <summary>
/// 小游戏-右上角分享接口
/// </summary>
/// <param name="shareName">分享策略名称</param>
/// <param name="userData">自定义数据使用'&'拼接</param>
onShareAppMessage(shareName: string, userData: string): void

//调用示例
Wb.Social.onShareAppMessage("friend_share", userData);

获取游戏在线配置

typescript
/// <summary>
/// 获取游戏在线配置
/// </summary>
/// <param name="version">配置版本</param>
initGameConfig(version: number);

/// <summary>
/// 游戏在线配置回调
/// </summary>
/// <param name="fun">回调</param>
SetOnNewConfigFectched(fun: Function);

/// <summary>
///  根据key获取参数
/// </summary>
/// <param name="key">关键字</param>
getConfigValue(key: string);

//调用示例
//获取游戏在线参数
Wb.Core.initGameConfig(2);
Wb.Core.SetOnNewConfigFectched(function (result: boolean) {
    if (result) {
        console.log("获取成功");
        let ret = Wb.Core.getConfigValue("status");
        console.log('ret:' + ret);
    } else {
        console.log("获取失败");
    }
});

兑换码

1. 兑换码开关

DANGER

自定义配置参数 key:dhm通过游戏在线参数配置 initGameConfig 获取兑换码开关!!!

2. 使用兑换码

typescript
/// <summary>
/// 使用兑换码
/// </summary>
/// <param name="dhm">兑换码id</param>
/// <param name="callFun">回调</param>
useCDKey(dhm: string, fun: Function)

兑换码状态

typescript
* 200 兑换成功
* 401 param is error 参数验证不通过
* 402 无效操作
* 403 兑换码无效
* 404 网络错误
* 405 兑换失败,当前兑换码已经被使用过了
* 406 当前兑换码已经失效
* 407 同一个兑换码只能使用一次
* 408 无法识别该兑换码
* 505 系统繁忙

示例:

typescript
* @param status 使用状态
* @param price 价格分
* @param msg 提示文字
Wb.Core.useCDKey("test", (status, price, msg) => {
    console.log("useCDKey status = " + status + " price = " + price + " msg = " + msg);
});