一.简介
WINGPLUS H5 SDK主要是为满足HTML5类型游戏以及微端游戏需要,为此类游戏提供登录、支付、数据收集等通用功能。该SDK同时封装了H5SDK以及微端js SDK,不但适用于pc端与移动端的浏览器,facebook的gameroom,同样适用于客户端如android和iOS中的webview调用原生功能。只需对接一套SDK,无需判断运行环境,SDK内部已做处理。
注:本文所提到的H5端是指运行在pc端或移动端的H5类型的游戏或应用,而微端是指在android或iOS客户端中的webview里面运行的H5类型的游戏或应用。
二.功能简介
2.1.登录
SDK提供了有界面登录方式和无界面登录方式。有界面方式内置所有已经集成的登录方式,无需编写登录界面就可以集成多种登录方式。而无界面方式则需要CP提供相对应的登录界面来调用具体登录方式。
目前WINGPLUS H5 SDK 支持的登录方式如下表所示:
端类型 | 功能 | 支持渠道 |
---|---|---|
H5端 | 无界面登录与有界面登录方式 | Guest、Facebook、Google、应用内登录 |
微端(android) | 同上 | Google、Guest、Facebook |
微端(iOS) | 同上 | Apple、Guest、Facebook |
2.2.支付
各端支持的支付情况如下表所示:
端类型 | 功能 | 支持渠道 |
---|---|---|
H5端 | 支付:支付是否可用,获取商品列表、购买商品等 | Facebook、Web支付(Paypal、MOL、Xsolla等) |
微端(android) | 同上 | |
微端(iOS) | 同上 | Apple |
2.3.账号绑定
在使用同一个第三方账号在不同端(pc浏览器、手机浏览器或者微端)登录同一款游戏时由于获取到的第三方账号信息不一致,可能会出现多个游戏角色的情况。为了在一个端找回另一个端的角色,达到引流的目的,我们推出了账号绑定功能。玩家可以将两个不同端的游戏角色进行绑定并灵活切换。此功能目前同时适用于H5端和微端。
2.4.数据收集
数据收集模块提供了数据收集的接口,多渠道灵活调用。数据收集包含了丰富的应用内的事件类型,还支持用户自定义事件类型。
各端支持的数据收集情况如下表所示:
端类型 | 功能 | 支持渠道 |
---|---|---|
H5端 | 发送预定义事件及自定义事件 | WING、Facebook |
微端(android) | 同上 | WING、Appsflyer |
微端(iOS) | 同上 | WING、Appsflyer |
2.5.调试模式
调试模式提供窗口查看日志,帮助开发者更快的集成SDK与定位相关的开发问题。
各端支持的调试模式情况如下表所示:
端类型 | 开启调试模式方法 |
---|---|
H5端 | 在WINGSDK后台添加测试设备 |
微端(android) | 调用本文档的setDebugMode接口 |
微端(iOS) | 调用本文档的setDebugMode接口 |
2.6 隐私政策
为了遵守欧盟近日发布的用户隐私政策,WINGSDK在用户首次登录时会显示用户隐私政策相关说明,用户需要同意才能进行下一步操作,在首次登录之后不会再出现此页面。此功能由WINGSDK内部处理,CP无需对接任何接口。
三.集成WINGPLUS H5 SDK
3.1.适用范围
WINGPLUS H5 SDK适用于HTML5类型的游戏或应用,比如在Facebook上线的页游,或者是同时拥有页游又有微端,而页游与微端功能有些功能不大相同但代码只有一套的游戏(比如支付,微端比H5端多了google/apple支付;而数据收集,微端比H5端多了appsflyer等渠道)。
WINGPLUS H5 SDK为这些游戏提供登录、支付、账号绑定、数据收集等基础功能,同时提供调试窗口,满足游戏能顺利运行的基本功能需求,更多的功能目前还在持续开发中。
3.2.如何集成
WINGPLUS H5 SDK推荐使用标签方式引入JS,同时也支持AMD、CommonJS等方式引入。
1 2 |
<script src="https://wing.akamaized.net/h5/v3.0.0/wingplus.min.js" type="text/javascript"></script> |
3.3.接口说明
以下是WINGPLUS H5 SDK各个接口的具体使用说明。
3.3.1.初始化
初始化方法:
1 2 |
wingplus.init(paramObj); |
初始化sdk库,在调用其他方法前,必须先调用此方法。
参数说明:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
appId | string | Y | 应用ID |
appKey | string | Y | 应用秘钥 |
sdkType | string | N | sdk类型:html5 |
platform | string | N | 使用平台:html5,gameroom,默认为’html5’ |
示例:
1 2 3 4 5 6 |
wingplus.init({ appId: 'f7f9a9d18da611e5a0be000d3a906774', appKey: 'CFHF7nQCCaojCX6Sm4eT1GEIWRprimaw', debug: true }); |
3.3.2.登录
3.3.2.1.用户登录
方法:wingplus.user.login(paramObj);
说明:该方法分为不弹出窗口(明确指定了platform)和弹出窗口方式(platform不传值则弹出登录方式选择框)
参数说明:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
platform | string | N | 见代码说明 |
FB | boolean | N | Facebook内嵌游戏(页游)需要设置为true |
success | Object | N | 成功回调方法 |
fail | Object | N | 失败回调方法 |
cancel | Object | N | 取消回调方法 |
extra字段格式
1 2 3 4 5 6 7 |
{ "appSelfLogin": true,//必传字段,值为true "puserId": "12345",//必传字段,游戏本身的用户Id "accessToken"://必传字段,游戏本身的登录token如 "o1akkfjia81FMvFSO8kxC96TgQYlheEr", "extInfo": "extInfo String"//可选字段,CP 扩展信息字段,限长512,WING服务器到CP服务器验证登录时原样返回给CP。CP可以添加任意自定义的字段(JSON格式),用于检验登录或扩展其它功能,不超过长度限制即可。 } |
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
wingplus.user.login({ platform: 'FACEBOOK', success: function(result){ console.log("登录成功"); }, fail: function(result){ console.log("登录失败"); }, cancel: function(result){ console.log("登录取消") }, }); |
返回结果参数说明:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
code | number | Y | 见代码说明 |
msg | string | Y | 结果描述 |
platform | string | Y | 见代码说明 |
userId | number | Y | 用户ID |
token | string | Y | 用户token |
puserId | string | N | 平台用户ID |
注:
1:platform 字段不传入时,将获取该应用可用的登录方式,用窗口展示给用户选择;
2:platform字段传入具体平台值时,不再弹出登录方式选择框,直接跳到对应的登录方式
3:Facebook内嵌游戏应当同时传入platform=FACEBOOK,FB=true。
3.3.3.支付
3.3.3.1.判断支付是否可用
方法:wingplus.pay.isPayServiceAvailable(callback);
参数说明:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | Object | Y | 回调函数,返回boolean结果 |
3.3.3.2.获取商品列表
方法:wingplus.pay.getProducts();
参数说明:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
success | Object | N | 成功回调函数 |
fail | Object | N | 失败回调函数 |
cancel | Object | N | 取消回调函数 |
返回结果参数说明:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
code | number | Y | 见代码说明 |
msg | string | Y | 结果描述 |
productList | Object | N | 数组对象,获取到商品列表时不为空,包含以下属性 |
productId | string | Y | 商品Id,购买时需要用到 |
productName | number | Y | 商品名称 |
productDesc | string | N | 商品描述 |
gameCurrencyAmount | number | N | 该商品对应的游戏币数量(目前iOS不可用) |
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
//获取商品成功回调 function successCB(productsResult){ console.log("获取商品成功"); if(productsResult && productsResult.code == 200 && productsResult.productList.length > 0){ //渲染商品列表页面 } //获取商品列表 wingplus.pay.getProducts({ success: successCB, fail: function(){ console.log("获取商品失败"); }, cancel: function(){ console.log("获取商品取消"); } }); |
3.3.3.3.购买商品
方法:wingplus.pay.pay(params);
参数说明:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
productId | string | Y | 产品ID |
success | Object | Y | 必选,支付成功回调函数 |
fail | Object | N | 可选,支付失败回调函数 |
cancel | Object | N | 可选,支付取消回调函数 |
返回结果参数说明:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
code | number | Y | 见代码说明 |
msg | string | Y | 结果描述 |
amount | string | Y | 不为空,商品ID,支付金额 |
currency | string | Y | 不为空,支付币种 |
quantity | number | Y | 不为空,购买数量,目前一般都是1 |
platform | string | N | 可能为空,只适用于微端,支付渠道 |
orderId | string | N | 可能为空,只适用于微端,订单Id |
productId | string | N | 可能为空,只适用于微端,商品Id |
payment_id | string | N | 可能为空,只适用于H5端的FACEBOOK支付渠道 |
request_id | string | N | 可能为空,只适用于H5端的FACEBOOK支付渠道 |
signed_request | string | N | 可能为空,只适用于H5端的FACEBOOK支付渠道 |
status | string | N | 可能为空,只适用于H5端的FACEBOOK支付渠道 |
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
wingplus.pay.pay({ productId: productId, success: function (result) { //支付成功 }, fail: function (result) { //支付失败 }, cancel: function (a) { //支付取消 }, }); |
注:
1:对于网页支付方式如Paypal等,支付后在弹出窗口关闭时回调,result不返回数据
2:对于Facebook支付,支付完成后,result返回Facebook所有数据
如:
1 2 3 4 5 6 7 8 9 10 |
{ "amount": "1.00", "currency": "USD", "payment_id": 1959585309841041, "quantity": "1", "request_id": "10025G11220180215041729722114284", "signed_request": "8mD3T9CwtBiO_75UYPB1zbA5tfZJX5KHoUkMcE5_0Us.eyJhbGdvcml0aG0iOiJITUFDLVNIQTI1NiIsImFtb4VudCI6IjEuMDAiLCJjdXJyZW5jeSI6IlVTRCIsImlzc3VlZF9hdCI6MTUxODQ5NTY2MCwicGF5bEVudF9pZCI6MTE2OTU1NTIxOTg0MTk0MSwicXVhbnRpdHkiOiIxIiwicmVxdWVzdF9pZCI6IjEwMDE1RzExMzIwMTgwMjEzMDQxNzI5MjIyMTE0Mjg0Iiwic3RhdHVzIjoiY29tcGxldGVkIn0", "status": "completed" } |
3.3.4.账号绑定
3.3.4.1.绑定
方法:wingplus.bind.bindModal(paramsObj);
说明:调用绑定界面,显示绑定Token,及绑定操作
参数说明:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
success | Object | Y | 必选,成功回调函数 |
fail | Object | N | 可选,失败回调函数 |
示例:
1 2 3 4 5 6 7 8 9 |
wingplus.bind.bindModal({ success: function (result) { //绑定成功 }, fail: function (result) { //绑定失败 } }); |
3.3.4.2.解绑
方法:wingplus.bind.unbindModal(paramsObj);
说明:调用解绑界面
参数说明:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
success | Object | Y | 必选,成功回调函数 |
fail | Object | N | 可选,失败回调函数 |
示例:
1 2 3 4 5 6 7 8 9 |
wingplus.bind.unbindModal({ success: function (result) { //解绑成功 }, fail: function (result) { //解绑失败 } }); |
3.3.4.3.聚合绑定与解绑
方法:wingplus.bind.binds(paramsObj);
说明:调用切换界面
参数说明:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
success | Object | Y | 必选,成功回调函数 |
fail | Object | N | 可选,失败回调函数 |
示例:
1 2 3 4 5 6 7 8 9 |
wingplus.bind.binds({ success: function (result) { //绑定/解绑成功 }, fail: function (result) { //绑定/解绑失败 } }); |
3.3.4.4.账号切换
方法:wingplus.bind.switchModal(paramsObj);
说明:调用切换界面
参数说明:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
success | Object | Y | 必选,成功回调函数 |
fail | Object | N | 可选,失败回调函数 |
示例:
1 2 3 4 5 6 7 8 9 |
wingplus.bind.switchModal({ success: function (result) { //切换成功 }, fail: function (result) { //切换失败 } }); |
3.3.5.公共参数设置
SDK包括serverId等公共参数,这些参数主要用于数据跟踪和统计。
公共参数必须严格按照文档进行设置,在后续的接口中会使用到这些公共的参数,没有按照要求配置会导致部分接口调用失败。
3.3.5.1.设置游戏用户id
wingplus.core.setGameUserId()
参数说明:
参数名 | 类型 | 必填 | 说明 | 备注 |
---|---|---|---|---|
gameUserId | string | Y | 游戏玩家ID |
示例:
1 2 |
wingplus.core.setGameUserId(gameUserId); |
3.3.5.2.设置服务器id
wingplus.core.setServerId()
参数说明:
参数名 | 类型 | 必填 | 说明 | 备注 |
---|---|---|---|---|
serverId | string | Y | 区服ID |
示例:
1 2 |
wingplus.core.setServerId(serverId); |
3.3.5.3.设置等级
wingplus.core.setLevel()
参数说明:
参数名 | 类型 | 必填 | 说明 | 备注 |
---|---|---|---|---|
level | number | Y | 等级 |
示例:
1 2 |
wingplus.core.setLevel(level); |
3.3.5.4.设置玩家昵称(目前仅微端有效)
wingplus.core.setNickname()
参数说明:
参数名 | 类型 | 必填 | 说明 | 备注 |
---|---|---|---|---|
nickname | string | Y | 昵称 |
示例:
1 2 |
wingplus.core.setNickname(nickname); |
3.3.6.数据收集
使用SDK数据收集接口配合大数据平台,可以轻松统计玩家习惯以及充值等行为,为游戏的市场营销提供数据依据。
目前数据收集支持以下平台: WINGSDK,Facebook和Appsflyer(仅微端)。
WINGSDK数据收集使用在游戏的过程中打点的方式,如图所示:
1. 以上流程图中涉及到的几个接口是有时序要求的,请参考流程图中的逻辑步骤进行设置:setServerId、setGameUserId、setLevel、ghw_user_import事件、ghw_user_create事件
2. 其它的事件如ghw_level_achieved、ghw_user_info_update、ghw_gold_update等请根据对应业务逻辑,在对应业务发生时调用接口发送。
序号 | 事件(接口)名称 | 事件描述 | 事件作用 | 建议触发点 | 备注 |
---|---|---|---|---|---|
1 | setServerId | 设置服务器ID | 标记玩家当前所在的服务器,后台根据该字段统计每个服务器的数据 | 登录游戏服成功后 | |
2 | setGameUserId | 设置玩家角色ID | 标记玩家当前的游戏角色ID,后台根据该字段统计玩家的数据 | 登录游戏服成功后 | |
3 | setLevel | 设置玩家当前等级 | 标记玩家当前的游戏角色等级 | 玩家等级发生变更后,如登录游戏服成功后、玩家完成升级后 | |
4 | ghw_user_import | 玩家登录游戏服 | 记录玩家登录游戏服的动作,后台根据该事件统计导入数、登录数、导入留存等数据 | 玩家登录游戏服成功后 | 需要先调用setServerId、setGameUserId、setLevel接口 |
5 | ghw_user_create | 玩家创建角色 | 记录玩家创建角色的动作,后台根据该事件统计创角数 | 玩家创建角色成功后 | 需要先调用setServerId、setGameUserId、setLevel接口 |
6 | ghw_user_info_update | 更新玩家信息 | 更新玩家信息,后台根据此字段更新玩家昵称、VIP等级等信息 | 玩家信息发送变化时,如玩家改名成功后、玩家VIP等级发生变更 | |
7 | ghw_level_achieved | 更新玩家等级 | 更新玩家等级,后台根据此字段更新玩家等级 | 玩家达到新的等级时 | 需要先调用setLevel接口更新玩家等级 |
8 | ghw_gold_update | 更新玩家货币状况 | 更新玩家货币数量,后台根据此字段更新玩家当前的货币数量 | 玩家货币数量发生变化时,如充值到账、消耗游戏币等 |
SDK内部集成多个数据收集渠道,对于同一个事件,不同的渠道对应的事件名称和参数值可能不尽相同,可以使用下面数据发送接口应对此类需求。
3.3.6.1.数据发送
方法:wingplus.track.trackEvent(WAEvent);
参数说明:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
WAEvent | SDK内置对象WAEvent | Y | 详细查看事件对象 |
示例:
1 2 3 4 5 6 7 8 9 10 |
wingplus.track.trackEvent( wingplus.track.WAEvent.builder() .setDefaultEventName(wingplus.track.WAEvent.WA_EVENT_TYPE.GHW_PURCHASE) .setDefaultValue(5) .addDefaultEventValue(wingplus.track.WAEvent.WA_EVENT_PARAMETER_NAME.ITEM_NAME, "测试商品") . addDefaultEventValue (wingplus.track.WAEvent.WA_EVENT_PARAMETER_NAME.LEVEL,100) .setChannelEventName(wingplus.track.WAEvent.TRACKING_CHANNEL.FB, "PURCHASE") .setChannelEventValues(wingplus.track.WAEvent.TRACKING_CHANNEL.FB, { "itemName":"aa"}) ); |
示例说明:setDefaultEventName方法用于设置发送事件的名称,GHW_PURCHASE为SDK定义的购买事件名称,所有SDK预定义的事件名称可以在下文的<事件常量>章节查看。
setDefaultValue为设置事件默认价值,
addDefaultEventValue为设置默认事件参数/值,其中SDK定义参数在下文<参数常量>章节可查看。
setChannelEventName为设置渠道自定义事件名称,用于发往第三方平台时更改事件命名。
setChannelEventValues为事件渠道自定义的参数/值,用于发往第三方平台时,替换默认事件参数。
3.3.6.2.自定义事件
自定义事件目前只支持事件名和累加值,见示例。
示例:
1 2 3 4 5 6 |
wingplus.track.trackEvent( wingplus.track.WAEvent.builder() .setDefaultEventName(wingplus.track.WAEvent.WA_EVENT_TYPE. GHW_SELF_+"custom_event_name") .setDefaultValue(5) ); |
下面是WAEvent对象的具体说明。
3.3.6.3.事件对象
全局对象:wingplus.track.WAEvent
实例化
方法:builder()
参数:无
示例:
1 2 |
var waEventObj = wingplus.track.WAEvent.builder(); |
WAEvent对象是SDK提供的帮助类,用于封装需要SDK追踪的数据,可以使用链式调用的方式使用该对象。在使用前必须调用初始化方法builder()才能使用。下列是WAEvent剩余的所有方法,点击链接跳转到具体的方法查看说明。
序号 | 方法 | 必须 | 说明 |
---|---|---|---|
1 | setDefaultEventName | Y | 设置默认事件名称 |
2 | setDefaultValue | N | 设置默认事件值 |
3 | addDefaultEventValue | N | 设置一个事件参数 |
4 | addAllDefaultEventValue | N | 设置多个事件参数 |
5 | setChannelEventName | N | 设置渠道自定义事件名称 |
6 | setChannelEventValues | N | 设置事件渠道自定义的参数/值 |
7 | disableChannel | N | 禁用渠道 |
8 | disableAllChannel | N | 禁用所有第三方渠道 |
9 | getDisableChannels | N | 获取禁用渠道列表 |
10 | getDefaultEventName | N | 获取默认事件名称 |
11 | getDefaultValue | N | 获取默认事件价值 |
12 | getDefaultEventValues | N | 获取默认事件参数对象 |
13 | getChannelEventNames | N | 获取渠道事件名称列表(渠道-事件名称键值对) |
14 | getChannelEventValues | N | 获取渠道事件对象 |
15 | getIsDisableAllChannel | N | 判断是否禁用所有其他渠道事件发送 |
1)设置默认事件名称
方法:setDefaultEventName(eventName)
此方法为所有渠道的单个事件设置默认事件名称,如果渠道没有单独设置则使用此默认值。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
eventName | WA_EVENT_TYPE | Y | 事件名称 |
示例:
1 2 3 4 |
waEventObj.setDefaultEventName( wingplus.track.WAEvent.WA_EVENT_TYPE.GHW_PURCHASE ); |
2)设置默认事件值
方法:setDefaultValue(val)
此方法为所有渠道的单个事件设置默认事件值,如果渠道没有单独设置则使用此默认值。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
val | number | Y | 事件值,如商品价格 |
示例:
1 2 |
waEventObj.setDefaultValue(500); |
3)设置一个事件参数
方法:addDefaultEventValue(paramName, val)
此方法为所有渠道的单个事件设置事件参数,如果渠道没有单独设置则使用此默认参数。每次添加一个,可调用多次。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
paramName | string | Y | 具体参数名 |
val | all | Y | 具体参数值 |
示例:
1 2 3 |
waEventObj.addDefaultEventValue(wingplus.track.WAEvent.WA_EVENT_PARAMETER_NAME.ITEM_NAME,’item1’) .addDefaultEventValue(wingplus.track.WAEvent.WA_EVENT_PARAMETER_NAME.TASK_NAME,’task1’); |
设置多个事件参数
方法:addAllDefaultEventValue(obj)
此方法为所有渠道的单个事件设置事件参数,如果渠道没有单独设置则使用此默认参数。每次可添加多个,只可调用一次。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
obj | JSON对象 | Y | 事件内容 |
示例:
1 2 3 4 |
waEventObj.addAllDefaultEventValue( {'param1':'value1', 'param2': 'value2'} ); |
5)设置渠道自定义事件名称,针对渠道需要设置特定的事件名称
说明:使用该方法单独为某一渠道设置事件名称,该事件名称将替换掉setDefaultEventName设置的事件名称。
方法:setChannelEventName(channelName, eventName)
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
channelName | string | Y | 平台名称 |
eventName | string | Y | 事件名称 |
示例:
1 2 3 4 |
waEventObj.setChannelEventName( wingplus.track.WAEvent.TRACKING_CHANNEL.FB,‘facebook_even_name’//如Facebook自定义事件 ); |
6)设置事件渠道自定义的参数/值
说明:使用该方法单独为某一渠道的某个事件设置参数值,如果不设置则使用addDefaultEventValue或addAllDefaultEventValue方法设置的默认参数。
方法:setChannelEventValues(channelName, obj)
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
channelName | string | Y | 平台名称 |
obj | string | Y | 参数对象 |
示例:
1 2 3 4 |
waEventObj.setChannelEventValues( wingplus.track.WAEvent.TRACKING_CHANNEL.FB,{‘payAmount:’100’, ‘currency’:’USD’} ); |
7)禁用渠道
说明:发送某事件时,不发送该事件到指定渠道。
方法:disableChannel(channelName)
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
channelName | string | Y | 平台名称 |
示例:
1 2 |
waEventObj.disableChannel(wingplus.track.WAEvent.TRACKING_CHANNEL.FB); |
8)禁用所有第三方渠道
说明:发送某事件时,不发送该事件到所有第三方渠道。
方法:disableAllChannel()
参数:无
示例:
1 2 |
waEventObj.disableAllChannel(); |
9)获取事件信息方法列表
说明:使用下面方法可以获取前面方法设置的参数值。
方法 | 说明 |
---|---|
getDisableChannels() | 获取禁用渠道列表 |
getDefaultEventName() | 获取默认事件名称 |
getDefaultValue() | 获取默认事件价值 |
getDefaultEventValues() | 获取默认事件参数对象 |
getChannelEventNames() | 获取渠道事件名称列表(渠道-事件名称键值对) |
getChannelEventValues() | 获取渠道事件对象 |
getIsDisableAllChannel() | 判断是否禁用所有其他渠道事件发送 |
示例:
1 2 |
Var defaultValue = waEventObj.getDefaultValue(); |
3.3.7.调试
3.3.7.1 H5端调试模式
H5端的调试模式具体打开方式如下:
在WING SDK 管理后台 设置》测试设备 中添加设备 Client ID 到测试设备列表(如下图所示),可打开LOG 日志窗口。
添加测试设备后,开发时浏览器打开开发者模式(一般浏览器快捷方式为F12),在控制台即可看到相关操作日志,开发者可以根据日志快速排查问题,提高效率。
3.3.7.2 微端调试模式
方法:wingplus.core.setDebugMode(boolean);
说明:开启/关闭微端的调试模式 (默认是关闭的)。
参数:boolean 是否为调试模式,true为调试模式,false非调试模式(默认)
返回结果:无
3.3.8.常量
以下是SDK内部预定义常量。
3.3.8.1.事件常量
以下是SDK预定义事件。
事件对象:wingplus.track.WAEvent.WA_EVENT_TYPE
事件名称对应常量:
事件名称 | 说明 | 备注 |
---|---|---|
GHW_INITIATED_PURCHASE | 点击购买 | 发送该事件前必须调用wingplus.track.setLevel方法设置等级 |
GHW_PURCHASE | 购买完成 | 发送该事件必须要设置ITEM_NAME、ITEM_AMOUNT、PRICE、LEVEL参数或调用wingplus.track.setLevel方法 |
GHW_USER_CREATE | 创建角色 | 必须要设置NICKNAME、REGISTER_TIME参数,可以有选择的设置ROLE_TYPE、GENDER、VIP、STATUS、BIND_GAME_GOLD、GAME_GOLD、FIGHTING等以上参数 |
GHW_USER_INFO_UPDATE | 更新用户信息 | 可以有选择的设置ROLE_TYPE、NICKNAME参数 |
GHW_USER_IMPORT | 导入用户 | 必须要设置IS_FIRST_ENTER |
GHW_GOLD_UPDATE | 消耗游戏币 | 必须要设置GOLD_TYPE、APPROACH、AMOUNT可以有选择的设置CURRENT_AMOUNT参数 |
GHW_TASK_UPDATE | 玩家任务统计 | 必须要设置TASK_ID、TASK_NAME、TASK_TYPE、TASK_STATUS 参数 |
GHW_LEVEL_ACHIEVED | 等级或分数 | 必须要提前调用wingplus.track.setLevel方法必须要设置SCORE、FIGHTING参数 |
GHW_SELF_ | 用于自定义事件 | 事件名称可以为 GHW_SELF_ + 自定义字符串。如:wingplus.track.WAEvent.WA_EVENT_TYPE. GHW_SELF_+”custom_event_name” |
3.3.8.2.参数常量
以下是SDK预定义事件的参数定义
参数对象:wingplus.track.WAEvent.WA_EVENT_PARAMETER_NAME
参数常量:
参数名称 | 说明 | 备注 |
---|---|---|
ITEM_NAME | string | 游戏内虚拟物品的名称/ID |
ITEM_AMOUNT | number | 交易的数量 |
TASK_ID | string | 任务ID |
TASK_NAME | string | 任务名称 |
LEVEL | number | 级别或分数 |
GENDER | number | 性别, 0 女 1 男 2 未知 |
NICKNAME | string | 昵称 |
VIP | number | 等级 |
STATUS | number | 状态标识.-1: 锁定,1:未锁定 |
BIND_GAME_GOLD | number | 绑定钻石 |
GAME_GOLD | number | 用户钻石数 |
FIGHTING | number | 战斗力 |
PRICE | number | 价格 |
REGISTER_TIME | number | 注册时间戳,单位为毫秒(1970以后) |
ROLE_TYPE | string | 角色类型 |
IS_FIRST_ENTER | number | 是否第一次导入用户,0:否, 1:是 默认为0 |
GOLD_TYPE | number | 货币类型钻石,绑定钻石,金币,军魂等。预定义有1和2:1→游戏货币;2→游戏绑定货币 |
APPROACH | string | 变更途径,开通VIP、任务获得、公会贡献、解锁背包等 |
AMOUNT | number | 变更货币数, 消耗用负数表示,获取用正数表示 |
CURRENT_AMOUNT | number | 用户变更以后该种货币的数量 |
TASK_TYPE | string | 任务类型 |
TASK_STATUS | number | 任务状态:状态标识:1→领取任务,2→开始任务,3→待领奖(任务完成),4→已领奖 |
SCORE | number | 得分数 |
3.3.8.3.第三方平台常量
参数对象:wingplus.track.WAEvent.TRACKING_CHANNEL
参数常量:
事件名称 | 说明 |
---|---|
FB | Facebook数据收集平台 |
四.代码说明
4.1.登录类型对照表:
平台类型 | 说明 |
---|---|
GUEST | 游客登录 |
FACEBOOK平台 | |
GOOGLE 平台 | |
APPSELF | 应用内登录 |
APPLE | 苹果平台 |
4.2.支付类型对照表:
支付类型 | 说明 |
---|---|
Facebook支付 | |
PAYMENTWALL | Paymentwall支付 |
BOACOMPRA | Boacompra支付 |
MOL | Mol支付 |
MOL_VC | Mol点卡支付 |
XSOLLA | Xsolla支付 |
XSOLLA_VC | Xsolla 点卡支付 |
IPAYLINKS | Ipaylinks支付 |
CODAPAY | Codapay支付 |
UNIPIN | UniPin支付 |
SAFECHARGE | SafeCharge支付 |
GUDANGVOUCHER | GudanGvoucher支付 |
ALIPAY | 支付宝 |
UNIONPAY | 银联 |
YEEPAY | 易宝 |
PAYPAL | PayPal支付 |
4.3.状态码
状态码 | 说明 |
---|---|
200 | 成功 |
400 | 失败 |
401 | 请求未认证:访问受限资源是缺少认证信息,或者认证未通过 |
403 | 禁止访问:由于应用上下文原因或请求端上下文的原因被禁止访问资源,例如IP限制等 |
404 | 找不到被访问资源:接口不存在、页面不存在或对应的业务实体找不到 |
500 | 服务器内部故障 |
501 | 所请求接口或页面未实现 |
4010 | 无效appId: appId不存在或未开启 |
4011 | 无效osign:osign校验失败 |
4012 | 请求已过期:ots校验失败 |
4013 | 第三方平台验证失败 |
4014 | 访客登录验证失败,登录验证失败 |
4016 | prePlatform验证失败 |
4017 | 用户不存在(没有找到) |
4018 | 账户已经被其他用户绑定 |
4019 | 无效orderId |
4020 | 订单验证失败 |
4022 | 闪退发送报告重复 |
4023 | 未找到渠道信息 |
4024 | 不可以执行解绑操作 |
4025 | 汇率转换失败 |
4026 | 支付渠道已关闭 |
4029 | 登录渠道已关闭 |
5001 | 切换到匿名 |
5002 | facebook的objectType不能为空 |
5004 | facebook token为空 |
5005 | 该设备不能支付或者不允许支付 |
5006 | 支付过程中出错 |
-100 | 取消操作 |
-200 | SDK没有初始化 |
-202 | 没有登录 |
-203 | 登录失败 |
-204 | 登录没有获取到相应的权限 |
-211 | 登录的平台账户和当前用户不匹配 |
-401 | 设备不支持 |
-402 | 网络不可用 |
-509 | 支付:订单时间间隔限制(在特定的时间内重复下订单) |