| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8" />
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
- <title>Document</title>
- <style>
- .click {
- width: 200px;
- height: 60px;
- border: 1px solid #ccc;
- margin: 0 auto;
- margin-bottom: 10px;
- line-height: 60px;
- text-align: center;
- border-radius: 10px;
- }
- </style>
- <script src="https://cdn.bootcss.com/crypto-js/4.0.0/crypto-js.min.js" type="text/javascript"></script>
- <script src="https://cdn.staticfile.org/jquery/3.5.1/jquery.min.js" type="text/javascript"></script>
- </head>
- <body>
- <button id="login">登录</button>
- <button id="config">获取配置</button>
- <button id="start">开始游戏</button>
- <button id="end">游戏结束</button>
- <button id="topList">排行榜</button>
- <button id="reward">抽奖</button>
- <button id="saveAddress">上报地址</button>
- <button id="sms">发送短信验证码</button>
- <input type="text" name="mobile" id="mobile" value="" />
- <input type="text" name="code" id="code" value="" />
- <button id="copy">测试复制</button>
- <div id="data"></div>
- <div id="loginResult"></div>
- <div id="configResult"></div>
- <div id="startResult"></div>
- <div id="endResult"></div>
- <div id="topListResult"></div>
- <div id="rewardResult"></div>
- <div id="saveAddressResult"></div>
- <div id="smsResult"></div>
- <input style="display: absolute; z-index: -1; height: 0; width: 0" id="copyTest" />
- <script type="text/javascript">
- var ua = navigator.userAgent.toLocaleUpperCase().indexOf("WEIBO") >= 0;
- alert(ua);
- if (!ua) {
- let url = "https://sina.shuncheng.lu/demo.html"; // 要打开的 H5 页面的地址
- let scheme = `sinaweibo://browser?url=` + encodeURIComponent(url);
- window.location.href = `https://m.weibo.cn/feature/openapp?scheme=` + encodeURIComponent(scheme);
- }
- function getQueryString(name) {
- let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
- let r = window.location.search.substr(1).match(reg);
- if (r != null) return unescape(r[2]);
- return null;
- }
- $("#login").click(function () {
- getCode("1");
- // callNative('sendCode', '');
- });
- $("#copy").click(function () {
- document.getElementById("copyTest").val(new Date());
- document.getElementById("copyTest").select();
- if (document.execCommand("copy")) {
- document.execCommand("copy");
- alert("复制成功");
- }
- });
- // 判断平台
- var u = navigator.userAgent;
- var isAndroid = u.indexOf("Android") > -1 || u.indexOf("Adr") > -1; //android终端
- var isiOS = !!u.match(/(iPhone|iPad|iPod)/gi); //ios终端
- var isWeChat = u.toLowerCase().match(/MicroMessenger/i) == "micromessenger"; //微信终端
- function getInfo(data) {
- // 暴露公用方法 ios 安卓调用H5
- dataDom.innerHTML = data;
- }
- var loginToken = "a0f18fa6b1f04232be549b6bb0186529";
- var gameID = "";
- var gameResult = {
- score: 301,
- list: [
- {
- clicktime: 1602222222,
- score: 301,
- },
- ],
- };
- var orderID = "";
- var mobile = "";
- var code = "";
- function getCode(data) {
- // 获取客户端传回来的code
- // 此处请求后端接口,将端给的code传给后端进行登录
- let params = { token: loginToken };
- $.ajax({
- type: "POST",
- url: "https://sina.shuncheng.lu/index/index/checkLogin",
- data: JSON.stringify({ cookie: document.cookie }),
- dataType: "json",
- xhrFields: {
- withCredentials: true, //允许跨域带Cookie
- },
- beforeSend: function (xhr) {
- xhr.withCredentials = true;
- },
- success: function (res) {
- console.log(res);
- loginToken = res.data.token;
- dataDom.innerHTML = res.data.token;
- },
- });
- }
- $("#config").click(function () {
- let params = { token: loginToken };
- // let encryptedData = Encrypt(JSON.stringify(params));
- $.post("https://sina.shuncheng.lu/index/login", params, function (res) {
- $("#configResult").html(res);
- let decrypted = Decrypt(res.data);
- $("#configResult").html(decrypted);
- });
- });
- $("#start").click(function () {
- let params = { token: loginToken };
- // let encryptedData = Encrypt(JSON.stringify(params));
- $.post("https://sina.shuncheng.lu/index/startGame", params, function (res) {
- $("#startResult").html(JSON.stringify(res));
- let decrypted = res.data;
- gameID = decrypted.gameID;
- });
- });
- $("#topList").click(function () {
- let params = { token: loginToken };
- // let encryptedData = Encrypt(JSON.stringify(params));
- $.post("https://sina.shuncheng.lu/index/topList", params, function (res) {
- $("#topListResult").html(JSON.stringify(res));
- // let decrypted = (Decrypt(res.data));
- // $('#topListResult').html(decrypted);
- // decrypted = JSON.parse(decrypted);
- // gameID = decrypted.gameID;
- });
- });
- $("#end").click(function () {
- let params = { token: loginToken, gameID: gameID, score: 300, gameData: gameResult };
- // let encryptedData = Encrypt(JSON.stringify(params));
- $.post("https://sina.shuncheng.lu/index/endGame", params, function (res) {
- $("#endResult").html(JSON.stringify(res));
- // let decrypted = (Decrypt(res.data));
- // $('#endResult').html(decrypted);
- // decrypted = JSON.parse(decrypted);
- // gameID = decrypted.gameID;
- });
- });
- $("#reward").click(function () {
- let params = { token: loginToken, gameID: gameID };
- // let encryptedData = Encrypt(JSON.stringify(params));
- $.post("https://sina.shuncheng.lu/index/reward", params, function (res) {
- $("#rewardResult").html(JSON.stringify(res));
- orderID = res.data.orderID;
- // let decrypted = (Decrypt(res.data));
- // $('#endResult').html(decrypted);
- // decrypted = JSON.parse(decrypted);
- // gameID = decrypted.gameID;
- });
- });
- $("#sms").click(function () {
- mobile = $("#mobile").val();
- let params = { token: loginToken, mobile: mobile };
- // let encryptedData = Encrypt(JSON.stringify(params));
- $.post("https://sina.shuncheng.lu/index/sendSmsCode", params, function (res) {
- $("#smsResult").html(JSON.stringify(res));
- // orderID = res.data.orderID;
- // let decrypted = (Decrypt(res.data));
- // $('#endResult').html(decrypted);
- // decrypted = JSON.parse(decrypted);
- // gameID = decrypted.gameID;
- });
- });
- $("#saveAddress").click(function () {
- code = $("#code").val();
- let params = {
- token: loginToken,
- orderID: orderID,
- isTopTen: false,
- name: "人人粉我",
- address: "上海东方明珠",
- mobile: mobile,
- code: code,
- };
- // let encryptedData = Encrypt(JSON.stringify(params));
- $.post("https://sina.shuncheng.lu/index/saveAddress", params, function (res) {
- $("#saveAddressResult").html(JSON.stringify(res));
- // orderID = res.data.orderID;
- // let decrypted = (Decrypt(res.data));
- // $('#endResult').html(decrypted);
- // decrypted = JSON.parse(decrypted);
- // gameID = decrypted.gameID;
- });
- });
- // 触发方法
- function callNative(name, value) {
- dataDom.innerHTML = navigator.userAgent;
- try {
- if (isWeChat && weChatUrl != null) {
- // 微信
- location.href = weChatUrl;
- } else if (isAndroid) {
- // H5调用安卓
- // 我传值
- dataDom.innerHTML = "设置值2";
- client.call(name, value);
- } else if (isiOS) {
- // H5调用ios
- dataDom.innerHTML = "设置值2";
- window.webkit.messageHandlers.calliOS.postMessage({ name, value });
- }
- } catch (e) {
- dataDom.innerHTML = "设置值3" + e;
- }
- }
- let dataDom = document.getElementById("data");
- function setData() {
- // 触发调用
- dataDom.innerHTML = "设置值1";
- // 下載圖片
- // downloadImg: 调用原生的方法名
- // 图片url: 写入需要传入的url
- // callNative('downloadImg', '图片url')
- // 调用code
- callNative("sendCode", "");
- }
- /**
- * 解密
- * @param word
- * @returns {*}
- */
- function Decrypt(word) {
- var key = CryptoJS.enc.Utf8.parse("yushenjianglinle");
- var decrypt = CryptoJS.AES.decrypt(word, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 });
- return CryptoJS.enc.Utf8.stringify(decrypt).toString();
- }
- //加密
- function Encrypt(word) {
- var key = CryptoJS.enc.Utf8.parse("yushenjianglinle");
- let srcs = CryptoJS.enc.Utf8.parse(word);
- let encrypted = CryptoJS.AES.encrypt(srcs, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 });
- return encrypted.toString();
- }
- </script>
- </body>
- </html>
|