常用接口
初始化(必接)
初始化接口
/**
* 初始化小游戏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)
示例
接入时H5动能appid和H5动能appkey需改为正式参数!!!
//示例
Wb.Core.miniGameInit("您的动能appid", "您的动能appkey", "米大师侧申请的应用ID", "云函数的环境ID", 10, (ret, openId, userCode) => {
if (ret) {
console.log('dnsdk初始化成功');
} else {
console.log('dnsdk初始化失败');
}
}, null, "");
统计(必接)
根据统计埋点文件使用合适接口上报游戏中产生的事件。
转化行为active
和active_register
事件必接!!!
1. 自定义事件(必接)
接口说明
tJCustomEvent(eventId: string): void
tJCustomEventLabel(eventId: string, label: string): void
tJCustomEventHashMap(eventId: string, attributes: string): void
事件说明
事件名称
事件ID
触发时机
附加参数
游戏loading页面
app_loading_show
游戏引擎初始化后就触发上报
无
游戏内首页
app_home_show
主页展示时
无
使用示例
//示例
Wb.Tj.tJCustomEvent("app_loading_show");
Wb.Tj.tJCustomEvent("app_home_show");
2. 转化行为上报(必接)
注意:转化行为上报使用tJSendTrackingEvent
接口!!!
SDK会本地缓存埋点记录,再上报会进行拦截
接口说明
/// <summary>
/// 转化行为上报
/// </summary>
/// <param name="eventId">事件id</param>
/// <param name="label">额外参数json字符串</param>
tJSendTrackingEvent(eventId: string, label: string): void
事件id
事件定义
data额外携带数据
建议上报时机
active(自实现上报必接)
激活
首次进入主页触发
active_register(自实现上报必接)
注册
完成角色创建后触发。如果没有角色创建过程,可跟active事件同时触发。
使用示例
Wb.Tj.tJSendTrackingEvent("active");
Wb.Tj.tJSendTrackingEvent("active_register");
3.关卡统计上报(必接)
接口说明
/// <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: 得分
关卡失败
使用示例
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_click
bonus_status:1领取成功,2领取失败 help_times_left: 剩余领取次数1,2,3
点击求助好友按钮时
邀请
invite_click
点击邀请好友入口
invite_number:邀请好友的数量 0,1,2...
玩家在主页点击邀请好友入口时上报 (首次弹出时上报0)
点击加号邀请好友
invite_click_plus
/
玩家在邀请好友界面点击加号时
点击领取奖励
bonus_click
bonus_status:1领取成功,2领取失败
点击领取奖励时
6.设置关卡和活动进度
sdk
上报stay_time
事件时会携带下面设置的数据
接口说明
/// <summary>
/// 设置上报level_id参数
/// </summary>
/// <param name="levelId"></param>
SetTjLevelId(levelId: string): void
/// <summary>
/// 设置上报活动进度参数
/// </summary>
/// <param name="json">活动json格式的字符串</param>
SetTjActivityProgress(json: string): void
使用示例
Wb.Tj.SetTjLevelId("10");
Wb.Tj.SetTjActivityProgress("{\"activity_id\":10,\"activity_progress\":15,\"activity_bonus_id\":15,\"begain_time\":100,\"valid_time\":120}");
7.设置用户标识
调用下面接口设置后,所有事件上报都会携带用户id
/// <summary>
/// 设置用户id
/// </summary>
/// <param name="userId">用户id</param>
setLoginId(id: string): void
使用示例
Wb.Core.setLoginId("123321");
广告(必接)
1. 打开广告
/// <summary>
/// 打开广告
/// </summary>
/// <param name="adName">广告位名称</param>
/// <param name="callBackFun">广告关闭回调,状态0成功、1失败、2加载失败</param>
openAd(adName: string, callback: Function = null): void
示例
Wb.Ad.openAd("banner");
Wb.Ad.openAd("home_mfzs", (ret, data) => {
console.log('打开视频广告 data = ' + JSON.stringify(data));
});
2. 广告是否缓存好
广告为实时加载方式(不缓存广告),调用接口直接返回true
/// <summary>
/// 广告是否缓存好
/// </summary>
/// <param name="adName">广告位名称</param>
isAdReady(adName: string): boolean
3. 某关卡是否可以打开该广告
/// <summary>
/// 某关卡是否可以打开该广告
/// </summary>
/// <param name="adName">广告位名称</param>
/// <param name="level">关卡id</param>
isAdBeOpenInLevel(adName: string, level: number): boolean
4. 关闭广告
/// <summary>
/// 关闭广告
/// </summary>
/// <param name="adName">广告位名称</param>
closeAd(adName: string): void
支付
1.支付接口
支付接口
/// <summary>
/// 小游戏支付
/// </summary>
/// <param name="info">支付参数</param>
/// <param name="func"></param>
miniPay(info: any, func: Function): void
调用示例
// 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.上报到账事件和消单
/// <summary>
/// 充值到账后上报
/// </summary>
/// <param name="tradeId">订单id</param>
tJPayOnAccount(tradeId: string): void
3. 补单
适用场景:使用sdk支付
设置补单回调,触发sdk中的补单逻辑。
/// <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.主动分享
/// <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
,触发右上角分享时才会调用下面的设置。
/// <summary>
/// 小游戏-右上角分享接口
/// </summary>
/// <param name="shareName">分享策略名称</param>
/// <param name="userData">自定义数据使用'&'拼接</param>
onShareAppMessage(shareName: string, userData: string): void
//调用示例
Wb.Social.onShareAppMessage("friend_share", userData);
获取游戏在线配置
/// <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. 兑换码开关
自定义配置参数 key:dhm 通过游戏在线参数配置 initGameConfig 获取兑换码开关!!!
2. 使用兑换码
/// <summary>
/// 使用兑换码
/// </summary>
/// <param name="dhm">兑换码id</param>
/// <param name="callFun">回调</param>
useCDKey(dhm: string, fun: Function)
兑换码状态
* 200 兑换成功
* 401 param is error 参数验证不通过
* 402 无效操作
* 403 兑换码无效
* 404 网络错误
* 405 兑换失败,当前兑换码已经被使用过了
* 406 当前兑换码已经失效
* 407 同一个兑换码只能使用一次
* 408 无法识别该兑换码
* 505 系统繁忙
示例:
* @param status 使用状态
* @param price 价格分
* @param msg 提示文字
Wb.Core.useCDKey("test", (status, price, msg) => {
console.log("useCDKey status = " + status + " price = " + price + " msg = " + msg);
});
Last updated