Showing
4 changed files
with
632 additions
and
0 deletions
H5SDKTestPage.html
0 → 100644
| 1 | +<!DOCTYPE html> | ||
| 2 | +<html> | ||
| 3 | + | ||
| 4 | +<head> | ||
| 5 | + <meta charset="utf-8"> | ||
| 6 | + <title>H5SDK测试</title> | ||
| 7 | + <script type="text/javascript" src="game_Simulate.js"></script> | ||
| 8 | + <script type="text/javascript" src="https://static.public.sdk.guangkatf.com/h5_sdk/guangkaH5SDK.js?" + new Date().getTime().toString()></script> | ||
| 9 | + | ||
| 10 | + <script type="text/javascript"> | ||
| 11 | + </script> | ||
| 12 | +</head> | ||
| 13 | + | ||
| 14 | +<body> | ||
| 15 | +<center> | ||
| 16 | + <h1>H5SDK测试页面</h1> | ||
| 17 | +</center> | ||
| 18 | +<hr> | ||
| 19 | +<center> | ||
| 20 | + <table> | ||
| 21 | + <tr> | ||
| 22 | + <td> | ||
| 23 | + <pre><button type="button" onclick="game.init()"> 初 始 化 </button></pre> | ||
| 24 | + </td> | ||
| 25 | + <td> | ||
| 26 | + <pre><button type="button" onclick="game.submitInfo()">提交角色信息</button></pre> | ||
| 27 | + </td> | ||
| 28 | + </tr> | ||
| 29 | + <tr> | ||
| 30 | + <td> | ||
| 31 | + <pre><button type="button" onclick="game.login()"> 登 录 </button></pre> | ||
| 32 | + </td> | ||
| 33 | + <td> | ||
| 34 | + <pre><button type="button" onclick="game.logout()"> 注 销 </button></pre> | ||
| 35 | + </td> | ||
| 36 | + </tr> | ||
| 37 | + <tr> | ||
| 38 | + <td> | ||
| 39 | + <pre><button type="button" onclick="game.pay()"> 支 付 </button></pre> | ||
| 40 | + </td> | ||
| 41 | + <td> | ||
| 42 | + <pre><button type="button" onclick="game.switchAccount()"> 切换账号 </button></pre> | ||
| 43 | + </td> | ||
| 44 | + </tr> | ||
| 45 | + <tr> | ||
| 46 | + <td> | ||
| 47 | + <pre><button type="button" onclick="game.statistics()"> 统 计 </button></pre> | ||
| 48 | + </td> | ||
| 49 | + <td> | ||
| 50 | + <pre><button type="button" onclick="game.showExitDialog()"> 退出游戏 </button></pre> | ||
| 51 | + </td> | ||
| 52 | + </tr> | ||
| 53 | + <tr> | ||
| 54 | + <td> | ||
| 55 | + <pre><button type="button" onclick="game.expansionInterface()"> 扩展接口 </button></pre> | ||
| 56 | + </td> | ||
| 57 | + </tr> | ||
| 58 | + </table> | ||
| 59 | +</center> | ||
| 60 | +<hr> | ||
| 61 | + | ||
| 62 | + | ||
| 63 | +</body> | ||
| 64 | + | ||
| 65 | +</html> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
game_Simulate.js
0 → 100755
| 1 | +//另一种在代码中引入JS文件的方式 | ||
| 2 | +// var newScript = document.createElement('script'); | ||
| 3 | +// newScript.setAttribute('type', 'text/javascript'); | ||
| 4 | +// newScript.setAttribute('src', 'Test2.js'); | ||
| 5 | +// document.getElementsByTagName('head')[0].appendChild(newScript); | ||
| 6 | + | ||
| 7 | +document.write("<script type=\"text\/javascript\" src=\"youaiH5SDK.js\"><\/script>"); | ||
| 8 | + | ||
| 9 | +var game = { | ||
| 10 | + /** | ||
| 11 | + * code: { | ||
| 12 | + INIT_SUCCESS: 1, | ||
| 13 | + INIT_FAIL: -1, | ||
| 14 | + LOGIN_SUCCESS: 10, | ||
| 15 | + LOGIN_FAIL: -10, | ||
| 16 | + LOGOUT_SUCCESS: 100, | ||
| 17 | + LOGOUT_FAIL: -100, | ||
| 18 | + SWITCH_SUCCESS: 1000, | ||
| 19 | + SWITCH_FAIL: -1000, | ||
| 20 | + PAY_SUCCESS: 2,//充值以服务端回调结果为准 | ||
| 21 | + PAY_FAIL: -2, | ||
| 22 | + PAY_CANCEL:-3,//支付取消 | ||
| 23 | + EXIT_SUCCESS = 4,//退出成功 | ||
| 24 | + EXIT_CANCEL = -4//取消退出 | ||
| 25 | + } | ||
| 26 | + * @param {*} code 为youaiH5SDK.code中对应值 | ||
| 27 | + * @param {*} msg | ||
| 28 | + */ | ||
| 29 | + callback: function (code, msg) { | ||
| 30 | + console.log(code, msg); | ||
| 31 | + switch (code) { | ||
| 32 | + case youaiH5SDK.code.INIT_SUCCESS: | ||
| 33 | + console.log("game init success") | ||
| 34 | + break; | ||
| 35 | + case youaiH5SDK.code.LOGIN_SUCCESS: | ||
| 36 | + console.log("game login success") | ||
| 37 | + console.log("openId:" + msg.openId + "custom:" + msg.custom + "serverSign:" + msg.serverSign + "timestamp:" + msg.timestamp); | ||
| 38 | + break; | ||
| 39 | + case youaiH5SDK.code.LOGOUT_SUCCESS: | ||
| 40 | + console.log("game logout success") | ||
| 41 | + break; | ||
| 42 | + case youaiH5SDK.code.SWITCH_SUCCESS: | ||
| 43 | + console.log("game switch account success") | ||
| 44 | + break; | ||
| 45 | + case youaiH5SDK.code.PAY_SUCCESS: | ||
| 46 | + console.log("game pay success") | ||
| 47 | + break; | ||
| 48 | + case youaiH5SDK.code.EXIT_SUCCESS: | ||
| 49 | + //游戏处理退出逻辑 | ||
| 50 | + break; | ||
| 51 | + } | ||
| 52 | + }, | ||
| 53 | + | ||
| 54 | + init: function () { | ||
| 55 | + var SDKInfo = { | ||
| 56 | + "gameSimpleName": "fytx_test", | ||
| 57 | + "sdkSimpleName": "huoshu_h5", | ||
| 58 | + "sdkClientVersion": "1.0", | ||
| 59 | + "sdkVersionCode": "V1_0", | ||
| 60 | + "statisticsUrl": "", | ||
| 61 | + "channelParameter1": "yy", | ||
| 62 | + "channelParameter2": "yy2" | ||
| 63 | + }; | ||
| 64 | + var param = window.location.search.substring(1); | ||
| 65 | + console.log(param); | ||
| 66 | + var params = param.split("&"); | ||
| 67 | + console.log(params); | ||
| 68 | + for (var i = 0; i < params.length; i++) { | ||
| 69 | + console.log(params[i]); | ||
| 70 | + var values = params[i].split("="); | ||
| 71 | + console.log(values); | ||
| 72 | + switch (values[0]) { | ||
| 73 | + case "ya_game": | ||
| 74 | + SDKInfo.gameSimpleName = values[1]; | ||
| 75 | + break; | ||
| 76 | + case "ya_sn": | ||
| 77 | + SDKInfo.sdkSimpleName = values[1]; | ||
| 78 | + break; | ||
| 79 | + case "ya_ssv": | ||
| 80 | + SDKInfo.sdkVersionCode = values[1]; | ||
| 81 | + break; | ||
| 82 | + case "ya_sv": | ||
| 83 | + SDKInfo.sdkClientVersion = values[1]; | ||
| 84 | + break; | ||
| 85 | + default: | ||
| 86 | + break; | ||
| 87 | + } | ||
| 88 | + } | ||
| 89 | + youaiH5SDK.init(SDKInfo, this.callback); | ||
| 90 | + }, | ||
| 91 | + | ||
| 92 | + login: function () { | ||
| 93 | + var param = "test"; | ||
| 94 | + youaiH5SDK.login(param); | ||
| 95 | + }, | ||
| 96 | + | ||
| 97 | + logout: function () { | ||
| 98 | + if (youaiH5SDK.hasLogout()) { | ||
| 99 | + youaiH5SDK.logout(); | ||
| 100 | + } | ||
| 101 | + }, | ||
| 102 | + | ||
| 103 | + switchAccount: function () { | ||
| 104 | + if (youaiH5SDK.hasSwitchAccount()) { | ||
| 105 | + console.log("end switch account"); | ||
| 106 | + youaiH5SDK.switchAccount(); | ||
| 107 | + } | ||
| 108 | + }, | ||
| 109 | + | ||
| 110 | + submitInfo: function () { | ||
| 111 | + /** | ||
| 112 | + * 为youaiH5SDK.type中对应类型值 | ||
| 113 | + type: { | ||
| 114 | + arriveEntrance: 1,//首屏日志 | ||
| 115 | + arriveLoadingZero: 2,//刚开始加载资源类型 | ||
| 116 | + arriveLoadingFinish: 3,//资源加载完成 | ||
| 117 | + arriveCreateRolePage: 4,//到达创建角色页面 | ||
| 118 | + arriveServerSelectPage: 5,//到达选服页面 | ||
| 119 | + enterServer: 6,//选服完成,点击进入对应服时 | ||
| 120 | + arriveFirstScene: 7,//到达游戏内第一场景时调用 | ||
| 121 | + enterGame: 8,//进入游戏时调用 | ||
| 122 | + createRole: 9,//创建角色时调用 | ||
| 123 | + upRoleLevel: 10//角色升级日志 | ||
| 124 | + } | ||
| 125 | + */ | ||
| 126 | + var submitType = youaiH5SDK.type.enterGame; | ||
| 127 | + var roleInfo = { | ||
| 128 | + "roleID": "15", | ||
| 129 | + "roleName": "test", | ||
| 130 | + "roleLevel": "15", | ||
| 131 | + "roleSex": "test", | ||
| 132 | + "serverID": "15", | ||
| 133 | + "serverName": "test", | ||
| 134 | + "roleCTime": "15", | ||
| 135 | + "partyName": "test", | ||
| 136 | + "roleType": "test", | ||
| 137 | + "roleChangeTime": "test", | ||
| 138 | + "vipLevel": "15", | ||
| 139 | + "diamond": "15", | ||
| 140 | + "moneyType": "test", | ||
| 141 | + "custom": "test" | ||
| 142 | + }; | ||
| 143 | + youaiH5SDK.submitData(submitType, roleInfo); | ||
| 144 | + }, | ||
| 145 | + | ||
| 146 | + pay: function () { | ||
| 147 | + var payInfo = { | ||
| 148 | + "serverId": "15", | ||
| 149 | + "serverName": "test", | ||
| 150 | + "playerId": "15", | ||
| 151 | + "playerName": "test", | ||
| 152 | + "playerLevel": "15", | ||
| 153 | + "postAmount": "15", | ||
| 154 | + "openId":"123643", | ||
| 155 | + "productId": "15", | ||
| 156 | + "productName": "test", | ||
| 157 | + "productDesc": "test", | ||
| 158 | + "custom": "test", | ||
| 159 | + "exchange": "15", | ||
| 160 | + "otherInfo": "15", | ||
| 161 | + "timeStamp": "15" | ||
| 162 | + }; | ||
| 163 | + youaiH5SDK.pay(payInfo); | ||
| 164 | + }, | ||
| 165 | + | ||
| 166 | + showExitDialog: function () { | ||
| 167 | + if (youaiH5SDK.hasShowExitDialog()) { | ||
| 168 | + youaiH5SDK.showExitDialog(); | ||
| 169 | + } else { | ||
| 170 | + //游戏自己处理退出逻辑 | ||
| 171 | + youaiH5SDK.exitGame(); | ||
| 172 | + } | ||
| 173 | + }, | ||
| 174 | + | ||
| 175 | + statistics: function () { | ||
| 176 | + var data = [{ "headers": { "product": "roh5" }, "body": "2018-03-14 17:57:21|test|5|qd|dqd|xqd|22222|20qd|10|1050055" }]; | ||
| 177 | + var statisticsListener = { | ||
| 178 | + onStatisticsSuccess: function () { | ||
| 179 | + alert("Statistic success!"); | ||
| 180 | + }, | ||
| 181 | + onStatisticsFail: function () { | ||
| 182 | + alert("Statistic fail!"); | ||
| 183 | + } | ||
| 184 | + }; | ||
| 185 | + youaiH5SDK.statistics(data, statisticsListener); | ||
| 186 | + }, | ||
| 187 | + | ||
| 188 | + expansionInterface: function () { | ||
| 189 | + /** | ||
| 190 | + * 传公共sdk扩展类型 | ||
| 191 | + * { | ||
| 192 | + gameSetting:100,//功能设置 | ||
| 193 | + downloadMicroClent:101,//下载微端 | ||
| 194 | + share:102,//分享 | ||
| 195 | + focus:103,//关注 | ||
| 196 | + save2Desktop:104,//保存到桌面 | ||
| 197 | + realVerify:105,//实名认证 | ||
| 198 | + back2Game:106,//返回游戏 | ||
| 199 | + bindPhone:107,//绑定手机有奖接口 | ||
| 200 | + } | ||
| 201 | + */ | ||
| 202 | + var expansion_type = youaiH5SDK.expansion_type.gameSetting;//功能设置 | ||
| 203 | + /** | ||
| 204 | + * { | ||
| 205 | + code:0,//0:成功 其他为失败 | ||
| 206 | + message:"success",//返回描述 | ||
| 207 | + data:{//除了gameSetting类型,其他功能暂时不返回data字段 | ||
| 208 | + has_micro_client:0,//是否有微端 0:没有,1:有,2已经在微端中 | ||
| 209 | + is_share:0,//是否有分享接口 0:没有,1:有 | ||
| 210 | + is_focus:0,//是否有关注 0:没,1:有,2:已经关注 | ||
| 211 | + is_apple_pay:0,//是否开启苹果支付 0:不开启 1:开启 | ||
| 212 | + is_desktop:0,//是否有保存桌面 0:没有 1:有 | ||
| 213 | + is_switch_account:0,//是否有切换账号 0:没有 1有 | ||
| 214 | + is_realverify:0,//是否有实名认证 0:没有 1:有 2:已认证 | ||
| 215 | + is_super_kefu:0,//是否有超级客服 0:没 1:有 | ||
| 216 | + is_backtogame:0,//是否有返回按钮 0:没有,1:有 | ||
| 217 | + is_lock:0,//是否竖屏 0:研发默认样式 1:强制竖屏 | ||
| 218 | + is_focus_gift:0,//关注有礼 0:关闭 1:开启 | ||
| 219 | + is_bindphone:0//绑定手机 0:关闭 1:开启 2:已绑定手机 | ||
| 220 | + } | ||
| 221 | + } | ||
| 222 | + * @param {*} result | ||
| 223 | + */ | ||
| 224 | + var expansionCallBack = function(result){ | ||
| 225 | + } | ||
| 226 | + youaiH5SDK.expansionInterface(expansion_type,"",expansionCallBack); | ||
| 227 | + } | ||
| 228 | +}; | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
公共SDK服务端接入文档.md
0 → 100644
| 1 | +http://gitlab.9133.com:10080/sdk_9133/sdk_public_android/edit/master/doc/%E5%85%AC%E5%85%B1SDK%E6%9C%8D%E5%8A%A1%E7%AB%AF%E6%8E%A5%E5%85%A5%E6%96%87%E6%A1%A3.md | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
公共js接入文档1.2.md
0 → 100644
| 1 | +# **公共SDK-H5 JS接入文档** # | ||
| 2 | + | ||
| 3 | +>版本:**1.1** | ||
| 4 | +> | ||
| 5 | +>最后修改:**2019年9月17日** | ||
| 6 | + | ||
| 7 | +## **一、接入准备** ## | ||
| 8 | + | ||
| 9 | +游戏页面引入公共SDK-H5相关JS文件(防止缓存游戏可加个版本或时间戳控制) | ||
| 10 | + | ||
| 11 | +- 接公共平台的引入下面js | ||
| 12 | +- https://static.public.sdk.gzyouai.com/h5_sdk/youaiH5SDK.js | ||
| 13 | +- 接入光卡的引入下面js | ||
| 14 | +- https://static.public.sdk.guangkatf.com/h5_sdk/guangkaH5SDK.js | ||
| 15 | + | ||
| 16 | +``` | ||
| 17 | +注意:壳包的话需要在给定的链接上添加一个uuid参数用来传机身码(ios:传IDFA,Android:imei) | ||
| 18 | +例子:http://game.html?uuid=idfa | ||
| 19 | +``` | ||
| 20 | +## **二、JS接口(对接可参考Demo中的game_Simulate.js中的例子)** ## | ||
| 21 | + | ||
| 22 | +1. **初始化SDK(必接)** | ||
| 23 | + | ||
| 24 | +  | ||
| 25 | + | ||
| 26 | + //CP在公共平台填写SDK信息后,我方会生成带有参数的游戏链接(如上图所示),例如:http://gameURL?ya_game=游戏项目代号&ya_sn=SDK代号&ya_sv=SDK客户端版本号&ya_ssv=SDK服务端版本号 | ||
| 27 | + | ||
| 28 | + //设置公共sdk回调方法 | ||
| 29 | + /** | ||
| 30 | + code: { | ||
| 31 | + INIT_SUCCESS: 1, | ||
| 32 | + INIT_FAIL: -1, | ||
| 33 | + LOGIN_SUCCESS: 10, | ||
| 34 | + LOGIN_FAIL: -10, | ||
| 35 | + LOGOUT_SUCCESS: 100, | ||
| 36 | + LOGOUT_FAIL: -100, | ||
| 37 | + SWITCH_SUCCESS: 1000, | ||
| 38 | + SWITCH_FAIL: -1000, | ||
| 39 | + PAY_SUCCESS: 2,//充值以服务端回调结果为准 | ||
| 40 | + PAY_FAIL: -2, | ||
| 41 | + PAY_CANCEL:-3,//支付取消 | ||
| 42 | + EXIT_SUCCESS: 4,//退出成功 | ||
| 43 | + EXIT_CANCEL: -4//取消退出 | ||
| 44 | + } | ||
| 45 | + @param {*} code 为youaiH5SDK.code中对应值 | ||
| 46 | + @param {*} msg | ||
| 47 | + */ | ||
| 48 | + callback: function (code, msg) { | ||
| 49 | + console.log(code, msg); | ||
| 50 | + switch (code) { | ||
| 51 | + case youaiH5SDK.code.INIT_SUCCESS://初始化成功 msg为描述 | ||
| 52 | + console.log("game init success") | ||
| 53 | + break; | ||
| 54 | + case youaiH5SDK.code.LOGIN_SUCCESS://登录成功 | ||
| 55 | + /** | ||
| 56 | + *custom: "test"//透传参数 | ||
| 57 | + *openId: "x1111dc104b800724d112195b61e1ff5" | ||
| 58 | + *serverSign: "ccb0488a46be85b9fc1b5bd55b532376"//签名校验sign | ||
| 59 | + *timestamp: "1554174508038" | ||
| 60 | + **/ | ||
| 61 | + console.log("game login success"); | ||
| 62 | + console.log("openId:" + msg.openId + "custom:" + msg.custom + "serverSign:" + msg.serverSign + "timestamp:" + msg.timestamp); | ||
| 63 | + break; | ||
| 64 | + case youaiH5SDK.code.LOGOUT_SUCCESS: | ||
| 65 | + console.log("game logout success") | ||
| 66 | + //回到游戏登录入口,然后调用登录接口 | ||
| 67 | + login(); | ||
| 68 | + break; | ||
| 69 | + case youaiH5SDK.code.SWITCH_SUCCESS: | ||
| 70 | + console.log("game switch account success") | ||
| 71 | + //游戏处理切换账号成功逻辑 | ||
| 72 | + break; | ||
| 73 | + case youaiH5SDK.code.PAY_SUCCESS: | ||
| 74 | + console.log("game pay success") | ||
| 75 | + break; | ||
| 76 | + case youaiH5SDK.code.EXIT_SUCCESS: | ||
| 77 | + //游戏处理退出逻辑 | ||
| 78 | + break; | ||
| 79 | + } | ||
| 80 | + }, | ||
| 81 | + youaiH5SDK.init(this.callback); | ||
| 82 | + | ||
| 83 | +2. **账号登录** | ||
| 84 | + | ||
| 85 | + var param = "test";//透传参数 | ||
| 86 | + //启用账号登录接口 | ||
| 87 | + youaiH5SDK.login(param); | ||
| 88 | + | ||
| 89 | +3. **注销账号/切换账号** | ||
| 90 | + | ||
| 91 | + //注销接口 | ||
| 92 | + if(youaiH5SDK.hasLogout()){//判断是否存在注销接口 | ||
| 93 | + youaiH5SDK.logout(); | ||
| 94 | + } | ||
| 95 | + //切换账号接口 | ||
| 96 | + if(youaiH5SDK.hasSwitchAccount()){//判断是否存在切换账号接口 | ||
| 97 | + youaiH5SDK.switchAccount(); | ||
| 98 | + } | ||
| 99 | + | ||
| 100 | + 例子: | ||
| 101 | + /** | ||
| 102 | + * youaiH5SDK.hasLogout() | ||
| 103 | + * youaiH5SDK.hasSwitchAccount() | ||
| 104 | + * 游戏可以根据上面两个接口判断是否提供切换账号接口 | ||
| 105 | + */ | ||
| 106 | + switchAccount: function () { | ||
| 107 | + if (youaiH5SDK.hasLogout()) {//存在注销接口,注销后会回调到初始化接口的注销类型的回调中 | ||
| 108 | + youaiH5SDK.logout(); | ||
| 109 | + }else if (youaiH5SDK.hasSwitchAccount()) {//存在切换账号接口,切换账号成功后会回调到初始化接口中的切换账号类型回调中 | ||
| 110 | + console.log("end switch account"); | ||
| 111 | + youaiH5SDK.switchAccount(); | ||
| 112 | + }else{//不存在切换账号接口,游戏自己处理 | ||
| 113 | + | ||
| 114 | + } | ||
| 115 | + } | ||
| 116 | + | ||
| 117 | +4. **提交数据信息** | ||
| 118 | + | ||
| 119 | + 在游戏中对应点根据不同的type进行调用 | ||
| 120 | + /** | ||
| 121 | + * 为youaiH5SDK.type中对应类型值 | ||
| 122 | + type: { | ||
| 123 | + arriveServerSelectPage: 1,//到达选服页面 | ||
| 124 | + createRole: 2,//创建角色时调用 | ||
| 125 | + enterGame: 3,//进入游戏时调用 | ||
| 126 | + upRoleLevel: 4,//角色升级日志 | ||
| 127 | + arriveEntrance: 5,//首屏日志 | ||
| 128 | + enterServer: 6,//选服完成,点击进入对应服时 | ||
| 129 | + arriveFirstScene: 7,//到达游戏内第一场景时调用 | ||
| 130 | + arriveLoadingFinish: 8,//资源加载完成 | ||
| 131 | + arriveLoadingZero: 9,//刚开始加载资源类型 | ||
| 132 | + arriveCreateRolePage: 10//到达创建角色页面 | ||
| 133 | + } | ||
| 134 | + */ | ||
| 135 | + var submitType = youaiH5SDK.type.enterGame;//进入游戏 | ||
| 136 | + //设置角色信息 | ||
| 137 | + var roleInfo = { | ||
| 138 | + "roleId": "角色ID", | ||
| 139 | + "roleName": "角色名称", | ||
| 140 | + "roleLevel": "角色等级", | ||
| 141 | + "roleSex": "角色性别 1:男 0:女", | ||
| 142 | + "serverId": "服务器ID", | ||
| 143 | + "serverName": "服务器名称", | ||
| 144 | + "roleCTime": "角色创建时间", | ||
| 145 | + "partyName": "工会名字", | ||
| 146 | + "roleType": "角色类型", | ||
| 147 | + "roleChangeTime": "角色更新时间", | ||
| 148 | + "vipLevel": "VIP等级", | ||
| 149 | + "diamond": "角色金币数量", | ||
| 150 | + "moneyType": "商品单位", | ||
| 151 | + "custom": "扩展参数", | ||
| 152 | + "isNew":"新创建角色第一次登录进游戏为1,其他为0", | ||
| 153 | + "score":"战力", | ||
| 154 | + "roleLevelReborn":"转生等级,没有传0" | ||
| 155 | + }; | ||
| 156 | + //以上信息中,游戏如没有传空值即可 | ||
| 157 | + //启用提交信息接口 | ||
| 158 | + youaiH5SDK.submitData(submitType, roleInfo); | ||
| 159 | + | ||
| 160 | +5. **支付** | ||
| 161 | + | ||
| 162 | + //设置订单参数 | ||
| 163 | + var payInfo = { | ||
| 164 | + "serverId": "服务器ID", | ||
| 165 | + "serverName": "服务器名字", | ||
| 166 | + "playerId": "角色ID", | ||
| 167 | + "openId":"渠道用户ID", | ||
| 168 | + "playerName": "角色名字", | ||
| 169 | + "playerLevel": "角色等级", | ||
| 170 | + "postAmount": "金额", | ||
| 171 | + "productId": "商品ID", | ||
| 172 | + "productName": "商品名称", | ||
| 173 | + "productDesc": "商品描述", | ||
| 174 | + "custom": "自定义透传参数", | ||
| 175 | + "exchange": "游戏币与人民币(元)的兑换比例", | ||
| 176 | + "otherInfo": "额外信息", | ||
| 177 | + "timestamp": "时间戳" | ||
| 178 | + }; | ||
| 179 | + //以上信息中,游戏如没有传空值即可 | ||
| 180 | + //启用支付接口 | ||
| 181 | + youaiH5SDK.pay(payInfo); | ||
| 182 | + | ||
| 183 | +6. **退出游戏** | ||
| 184 | + | ||
| 185 | + if(youaiH5SDK.hasShowExitDialog()){//渠道含有退出框,游戏在回调中处理退出逻辑 | ||
| 186 | + youaiH5SDK.showExitDialog(); | ||
| 187 | + }else{ | ||
| 188 | + //游戏自己处理退出逻辑后调用exitGame()接口 | ||
| 189 | + youaiH5SDK.exitGame(); | ||
| 190 | + } | ||
| 191 | + | ||
| 192 | +7. **获取公共层参数接口** | ||
| 193 | + | ||
| 194 | + 说明:本接口通过键获取对应的参数值,需要在初始化成功后才能调用 | ||
| 195 | + /** | ||
| 196 | + 获取公共层参数 | ||
| 197 | + @param {string} key | ||
| 198 | + */ | ||
| 199 | + getParamValueByKey:function (key) | ||
| 200 | + | ||
| 201 | + 例子: | ||
| 202 | + youaiH5SDK.getParamValueByKey("custom");//获取公共后台的自定义参数 | ||
| 203 | + youaiH5SDK.getParamValueByKey("channelParameter1");//渠道标识1 | ||
| 204 | + youaiH5SDK.getParamValueByKey("channelParameter2");//渠道标识2 | ||
| 205 | + youaiH5SDK.getParamValueByKey("channelId");//渠道号 | ||
| 206 | + | ||
| 207 | +8. **扩展接口(游戏可根据渠道要求看是否接入)** | ||
| 208 | + | ||
| 209 | + /** | ||
| 210 | + 扩展接口 | ||
| 211 | + @param {*} type 扩展类型 | ||
| 212 | + @param {*} data 传递数据(当type为queryProductsInfo时传递充值项ID数据(具体值与渠道沟通)(eg:["test1","test2"]),其他类型暂时不传) | ||
| 213 | + @param {*} callback 回调方法 | ||
| 214 | + */ | ||
| 215 | + expansionInterface: function (type, data, callback); | ||
| 216 | + | ||
| 217 | + 示例: | ||
| 218 | + /** | ||
| 219 | + * 传公共sdk扩展类型 | ||
| 220 | + * { | ||
| 221 | + gameSetting:100,//功能设置 | ||
| 222 | + downloadMicroClent:101,//下载微端 | ||
| 223 | + share:102,//分享 | ||
| 224 | + focus:103,//关注 | ||
| 225 | + save2Desktop:104,//保存到桌面 | ||
| 226 | + realVerify:105,//实名认证 | ||
| 227 | + back2Game:106,//返回游戏 | ||
| 228 | + bindPhone:107,//绑定手机有奖接口 | ||
| 229 | + score:108,//评分 | ||
| 230 | + kefu:109,//客服接口 | ||
| 231 | + queryProductsInfo:110,//根据sku(商品ID)查询商品信息 | ||
| 232 | + eventTrack:111//事件上报接口 | ||
| 233 | + } | ||
| 234 | + */ | ||
| 235 | + var expansion_type = youaiH5SDK.expansion_type.gameSetting;//功能设置 | ||
| 236 | + /** | ||
| 237 | + * { | ||
| 238 | + code:0,//0:成功 其他为失败 | ||
| 239 | + message:"success",//返回描述 | ||
| 240 | + data:{//gameSetting时返回下面数据 | ||
| 241 | + has_micro_client:0,//是否有微端 0:没有,1:有,2已经在微端中 | ||
| 242 | + is_share:0,//是否有分享接口 0:没有,1:有 | ||
| 243 | + is_focus:0,//是否有关注 0:没,1:有,2:已经关注 | ||
| 244 | + is_apple_pay:0,//是否开启苹果支付 0:不开启 1:开启 | ||
| 245 | + is_desktop:0,//是否有保存桌面 0:没有 1:有 | ||
| 246 | + is_switch_account:0,//是否有切换账号 0:没有 1有 | ||
| 247 | + is_realverify:0,//是否有实名认证 0:没有 1:有 2:已认证 | ||
| 248 | + is_super_kefu:0,//是否有超级客服 0:没 1:有 | ||
| 249 | + is_backtogame:0,//是否有返回按钮 0:没有,1:有 | ||
| 250 | + is_lock:0,//是否竖屏 0:研发默认样式 1:强制竖屏 | ||
| 251 | + is_focus_gift:0,//关注有礼 0:关闭 1:开启 | ||
| 252 | + is_bindphone:0,//绑定手机 0:关闭 1:开启 2:已绑定手机 | ||
| 253 | + is_kefu:0,//是否有客服 0:没有,1:有(调用对应的客服类型接口(kefu)) | ||
| 254 | + is_score:0,//是否有评分接口 0:没有,1:有(调用对应的评分类型接口(score)) | ||
| 255 | + is_query_products_info:0,//是否有查询商品信息接口 0:没有 1:有(调用对应的查询商品信息接口(queryProductsInfo)) | ||
| 256 | + is_event_track:0// 0:没有 1:有 是否有事件上报接口 | ||
| 257 | + } | ||
| 258 | + [//查询商品信息返回数据(queryProductsInfo) | ||
| 259 | + { | ||
| 260 | + "displayPrice": "₩1159.69",//商品显示的价格 | ||
| 261 | + "price": "₩1,160", | ||
| 262 | + "priceAmountMicros": 1159687601, | ||
| 263 | + "priceCurrencyCode": "KRW", | ||
| 264 | + "sku": "android.test.purchased", | ||
| 265 | + "title": "名称示例" | ||
| 266 | + }, | ||
| 267 | + { | ||
| 268 | + "displayPrice": "₩1159.69", | ||
| 269 | + "price": "₩1,160", | ||
| 270 | + "priceAmountMicros": 1159687601, | ||
| 271 | + "priceCurrencyCode": "KRW", | ||
| 272 | + "sku": "android.test.purchased", | ||
| 273 | + "title": "名称示例" | ||
| 274 | + } | ||
| 275 | + ] | ||
| 276 | + } | ||
| 277 | + * @param {*} result | ||
| 278 | + */ | ||
| 279 | + var expansionCallBack = function(result){ | ||
| 280 | + } | ||
| 281 | + youaiH5SDK.expansionInterface(expansion_type,"",expansionCallBack); | ||
| 282 | + | ||
| 283 | + | ||
| 284 | +9. **统计(大数据小组要求游戏接入)** | ||
| 285 | + | ||
| 286 | + 客户端日志接入说明 | ||
| 287 | + | ||
| 288 | + 接入方式:HTTP | ||
| 289 | + 数据格式:JSON | ||
| 290 | + | ||
| 291 | + 格式说明: | ||
| 292 | + 一条完整的日志,json格式为: | ||
| 293 | + { | ||
| 294 | + “headers” : {"product" : "roh5"}, //头信息 | ||
| 295 | + “body” : “2017-12-19 12:19:07|click|1|qd|dqd|xqd” //日志内容 | ||
| 296 | + } | ||
| 297 | + 一次请求发送的格式必须是以上json的数组格式的字符串形式,如: | ||
| 298 | + [ | ||
| 299 | + { | ||
| 300 | + “headers” : {"product" : "roh5"}, | ||
| 301 | + “body” : “2017-12-19 12:19:07|click|1|qd|dqd|xqd” | ||
| 302 | + }, //发送的第一条日志 | ||
| 303 | + { | ||
| 304 | + “headers” : {"product" : "roh5"}, | ||
| 305 | + “body” : “2017-12-19 12:19:07|click|1|qd|dqd|xqd” | ||
| 306 | + }, //发送的第二条日志 | ||
| 307 | + …… //第三条…… | ||
| 308 | + ] | ||
| 309 | + | ||
| 310 | + 如果一次只发一条记录,也需要用长度为1的数组,如: | ||
| 311 | + [ | ||
| 312 | + { | ||
| 313 | + “headers” : {"product" : "roh5"}, | ||
| 314 | + “body” : “2017-12-19 12:19:07|click|1|qd|dqd|xqd” | ||
| 315 | + } | ||
| 316 | + ] | ||
| 317 | + | ||
| 318 | + 其他说明: | ||
| 319 | + Json中的headers暂时先传一个产品代号,后续有需要再扩展日志中,头两个字段是固定的,第一个字段必须是“yyyy-MM-dd HH:mm:ss”格式的时间戳,第二个字段是日志类型名称(如login,click等…),各个字段以“|”号进行分隔。 | ||
| 320 | + | ||
| 321 | + 如果数据本身存在竖线,则需要使用中文竖线”丨”进行替换 | ||
| 322 | + | ||
| 323 | + --------------------------------- | ||
| 324 | + | ||
| 325 | + //以上是大数据小组要的统计信息格式 | ||
| 326 | + //设置信息 | ||
| 327 | + var data = 统计信息,例如:[{ "headers": { "product": "roh5" }, "body": "2018-03-14 17:57:21|test|5|qd|dqd|xqd|22222|20qd|10|1050055" }]; | ||
| 328 | + //设置统计监听 | ||
| 329 | + var statisticsListener = { | ||
| 330 | + onStatisticsSuccess: function () { | ||
| 331 | + alert("Statistic success!"); | ||
| 332 | + }, | ||
| 333 | + onStatisticsFail: function () { | ||
| 334 | + alert("Statistic fail!"); | ||
| 335 | + } | ||
| 336 | + }; | ||
| 337 | + //启用统计接口 | ||
| 338 | + youaiH5SDK.statistics(data, statisticsListener); |
-
Please register or login to post a comment