Appearance
常用接口
初始化(必接)
初始化接口
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
转化行为active
和active_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_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.设置关卡和活动进度
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会进行验签请求,可通过日志查看
.B_Xb08Ao.png)
虚拟支付1.0不会进行验签请求,会直接拉起支付
.CiS7S6NO.png)
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);
});