Sfoglia il codice sorgente

复原之前被覆盖的代码

heyang 2 anni fa
parent
commit
d934a75429
1 ha cambiato i file con 177 aggiunte e 56 eliminazioni
  1. 177 56
      static/screenAndroid/WXtrialInterface.html

+ 177 - 56
static/screenAndroid/WXtrialInterface.html

@@ -189,7 +189,6 @@
       src="https://cdn.bootcss.com/vConsole/3.2.0/vconsole.min.js"
     ></script>
     <script src="https://cdn.bootcss.com/jquery-weui/1.2.1/js/jquery-weui.min.js"></script>
-    <script type="text/javascript" src="WXdraw.js"></script>
     <script type="text/javascript" src="jmuxer.js"></script>
     <script type="text/javascript" src="spsParser.js"></script>
     <script
@@ -202,9 +201,9 @@
       var baseUrl = url[0] + '//' + url[2];
 
       var parameters = GetRequest();
-      var form = {};
-      form.token = parameters['token'];
-      form.userCardId = parameters['userCardId'];
+      var token = parameters['token'];
+      var userCardId = parameters['userCardId'];
+      var mealType = parameters['mealType'];
       var videoTimer = null,
         videoTime = 0,
         adType = 0,
@@ -232,6 +231,92 @@
         $('.loading_sceen_pic').attr('src', '../static/img/home_bg_PRO.png');
       }
       initAD();
+      let dbName = parameters['username'],
+        version = 1,
+        storeName = 'usercard';
+      let indexedDB = window.indexedDB;
+      let db, socketURL, cUrl, cardToken, resolvingPower;
+      const request = indexedDB.open(dbName, version);
+      request.onsuccess = function (event) {
+        db = event.target.result; // 数据库对象
+        console.log('数据库打开成功');
+      };
+
+      request.onerror = function (event) {
+        console.log('数据库打开报错');
+      };
+
+      request.onupgradeneeded = function (event) {
+        // 数据库创建或升级的时候会触发
+        console.log('onupgradeneeded');
+        db = event.target.result; // 数据库对象
+        let objectStore;
+        if (!db.objectStoreNames.contains(storeName)) {
+          objectStore = db.createObjectStore(storeName, { keyPath: 'id' }); // 创建表
+        }
+      };
+      // 添加数据
+      function addData(db, storeName, data) {
+        let request = db
+          .transaction([storeName], 'readwrite') // 事务对象 指定表格名称和操作模式("只读"或"读写")
+          .objectStore(storeName) // 仓库对象
+          .add(data);
+
+        request.onsuccess = function (event) {
+          console.log('数据写入成功');
+        };
+
+        request.onerror = function (event) {
+          console.log('数据写入失败');
+          throw new Error(event.target.error);
+        };
+      }
+
+      // 根据id获取数据
+      function getDataByKey(db, storeName, key) {
+        let transaction = db.transaction([storeName]); // 事务
+        let objectStore = transaction.objectStore(storeName); // 仓库对象
+        let request = objectStore.get(key);
+
+        request.onerror = function (event) {
+          connect('add');
+        };
+
+        request.onsuccess = function (event) {
+          console.log('主键查询结果: ', request.result);
+          if (request.result) {
+            socketURL = request.result.socketURL;
+            cUrl = request.result.cUrl;
+            cardToken = request.result.cardToken;
+            resolvingPower = request.result.resolvingPower;
+            doConnectBusiness();
+            doConnectDirectives();
+          } else {
+            connect('add');
+          }
+        };
+      }
+
+      // 根据id修改数
+      function updateDB(db, storeName, data) {
+        let request = db
+          .transaction([storeName], 'readwrite') // 事务对象
+          .objectStore(storeName) // 仓库对象
+          .put(data);
+
+        request.onsuccess = function () {
+          console.log('数据更新成功');
+        };
+
+        request.onerror = function () {
+          console.log('数据更新失败');
+        };
+      }
+
+      // 由于打开indexDB是异步的加个定时器避免 db对象还没获取到值导致 报错
+      setTimeout(() => {
+        getDataByKey(db, storeName, userCardId);
+      }, 1000);
       var isAudioPlay = false;
       if (navigator.userAgent.toLowerCase().includes('toutiaomicroapp')) {
         var video = document.getElementById('playerVideo');
@@ -291,21 +376,72 @@
       Module.onRuntimeInitialized = function () {
         isFinish = true;
       };
-
-      var isWSS = true;
-      var ip = parameters['ip'];
-      var cardToken = parameters['cardToken'];
-      cardToken = cardToken && decodeURIComponent(cardToken);
-      var appletPushAddress = parameters['appletPushAddress'];
-      var socketURL = isWSS
-        ? 'wss://' +
-          appletPushAddress +
-          '?cardIp=' +
-          ip +
-          '&token=' +
-          cardToken +
-          '&type=business'
-        : 'ws://' + appletPushAddress + '?cardIp=' + ip + '&token=' + cardToken;
+      function connect() {
+        $.ajax({
+          url: baseUrl + '/api/resources/user/cloud/connect',
+          type: 'post',
+          data: JSON.stringify({
+            userCardId: Number(userCardId),
+          }),
+          headers: {
+            'content-Type': 'application/json',
+            Authorization: token,
+          },
+          dataType: 'json',
+          async: false,
+          success: function (res) {
+            if (res.status === 0) {
+              if (res.data.internetHttps) {
+                socketURL =
+                  'wss://' +
+                  res.data.internetHttps +
+                  '/plugflow?cardIp=' +
+                  res.data.localIp +
+                  '&token=' +
+                  res.data.cardToken +
+                  '&type=business';
+                cUrl =
+                  'wss://' +
+                  res.data.internetHttps +
+                  '/businessChannel?cardIp=' +
+                  res.data.localIp +
+                  '&token=' +
+                  res.data.cardToken +
+                  '&type=directives';
+                cardToken = res.data.cardToken;
+                resolvingPower = res.data.resolvingPower;
+                doConnectBusiness();
+                doConnectDirectives();
+                if (type === 'add') {
+                  addData(db, storeName, {
+                    id: userCardId,
+                    socketURL: socketURL,
+                    cUrl: cUrl,
+                    cardToken: res.data.cardToken,
+                    resolvingPower: res.data.resolvingPower,
+                  });
+                } else {
+                  updateDB(db, storeName, {
+                    id: userCardId,
+                    socketURL: socketURL,
+                    cUrl: cUrl,
+                    cardToken: res.data.cardToken,
+                    resolvingPower: res.data.resolvingPower,
+                  });
+                }
+              } else {
+                $.toast('网络异常,请稍后重试', 'text');
+              }
+            } else {
+              $.toast('画面异常,请重新进入', 'text');
+              clearInterval(intervaler);
+              quit();
+              ws.close();
+              wsss.close();
+            }
+          },
+        });
+      }
 
       var jmuxer = new JMuxer({
         node: 'playerVideo',
@@ -324,7 +460,7 @@
       };
       var ws,
         errorTime = 0;
-      doConnect();
+
       // 节流
       // 设置一个标志
       function throttle(fn, delay) {
@@ -340,7 +476,7 @@
         };
       }
       var intervaler;
-      function doConnect() {
+      function doConnectBusiness() {
         ws = new WebSocket(socketURL);
         ws.binaryType = 'arraybuffer';
         intervaler = setInterval(() => {
@@ -363,7 +499,7 @@
         ws.addEventListener('error', function (event) {
           ws.close();
           clearInterval(intervaler);
-          throttle(doConnect, 100);
+          throttle(doConnectBusiness, 100);
           if (errorTime > 1000) {
             $.toast('画面异常,请重新进入', 'text');
             wsss.close();
@@ -547,11 +683,7 @@
               var checkBuffer = GetScreenState();
               ws.send(checkBuffer);
             } else {
-              $.toast('画面异常,请重新进入', 'text');
-              clearInterval(intervaler);
-              quit();
-              ws.close();
-              wsss.close();
+              connect('update');
             }
           }
           if (input[23] == 0x05) {
@@ -601,9 +733,6 @@
         return false;
       }
 
-      var form = {};
-      form.token = parameters['token'];
-      form.userCardId = parameters['userCardId'];
       function array_unique(arr) {
         return arr.filter(function (e, i) {
           return arr.indexOf(e) === i;
@@ -621,7 +750,7 @@
           $.ajax({
             url: baseUrl + '/api/public/v5/shear/content',
             headers: {
-              Authorization: form.token,
+              Authorization: token,
             },
             type: 'get',
             dataType: 'json',
@@ -684,7 +813,7 @@
           $.ajax({
             url: baseUrl + '/api/public/v5/shear/content?' + ids,
             headers: {
-              Authorization: form.token,
+              Authorization: token,
             },
             type: 'DELETE',
             dataType: 'json',
@@ -712,7 +841,7 @@
         $.ajax({
           url: baseUrl + '/api/public/v5/shear/content?ids=' + id,
           headers: {
-            Authorization: form.token,
+            Authorization: token,
           },
           type: 'DELETE',
           dataType: 'json',
@@ -983,16 +1112,15 @@
           $.ajax({
             url: baseUrl + '/api/pay/v5/trialCodeConfig/getConfigByPhoneType',
             headers: {
-              Authorization: form.token,
+              Authorization: token,
             },
             data: {
-              userCardId: form.userCardId,
-              phoneType: form.mealType,
+              userCardId: userCardId,
+              phoneType: mealType,
             },
             type: 'get',
             dataType: 'json',
             success: function (res) {
-              console.log(res);
               let obj = res.data;
               if (res.status === 0) {
                 resolve(obj);
@@ -1009,7 +1137,7 @@
           $.ajax({
             url: baseUrl + '/api/resources/v4/freetrial/setmeal/list',
             headers: {
-              Authorization: form.token,
+              Authorization: token,
             },
             type: 'get',
             dataType: 'json',
@@ -1043,7 +1171,7 @@
         return $.ajax({
           url: baseUrl + '/api/public/v5/advertising/getAdInfoByAdPlace',
           headers: {
-            Authorization: form.token,
+            Authorization: token,
           },
           data: JSON.stringify({
             adPlace: adType,
@@ -1254,10 +1382,10 @@
         $.ajax({
           url: baseUrl + '/api/resources/v1/trial/report',
           headers: {
-            Authorization: form.token,
+            Authorization: token,
           },
           data: JSON.stringify({
-            userCardId: form.userCardId,
+            userCardId: userCardId,
             reportType: type,
           }),
           type: 'POST',
@@ -1336,7 +1464,12 @@
         } else {
           // 过期续费按钮进入
           wx.miniProgram.navigateTo({
-            url: `/packageA/order/renew/index?buyType=${sourceType == 1 ? '试用弹窗购买按钮进入-普通试用' : '试用弹窗购买按钮进入-激活码试用'}&record=` + form.userCardId,
+            url:
+              `/packageA/order/renew/index?buyType=${
+                sourceType == 1
+                  ? '试用弹窗购买按钮进入-普通试用'
+                  : '试用弹窗购买按钮进入-激活码试用'
+              }&record=` + userCardId,
           });
         }
       });
@@ -1363,7 +1496,7 @@
         $.ajax({
           url: baseUrl + '/api/public/v1/systemBuriedPoint/stat',
           headers: {
-            Authorization: form.token,
+            Authorization: token,
           },
           type: 'post',
           data: JSON.stringify({
@@ -1374,19 +1507,6 @@
           success: function (res) {},
         });
       }
-      // 观看广告次数上报
-      function reportFrequency() {
-        $.ajax({
-          url: baseUrl + '/api/resoures/v1/trial/reportFrequency/' + form.userCardId,
-          headers: {
-            Authorization: form.token
-          },
-          type: 'post',
-          contentType: 'application/json',
-          dataType: 'json',
-          success: function (res) {},
-        });
-      }
       function quit() {
         if (navigator.userAgent.toLowerCase().includes('toutiaomicroapp')) {
           tt.miniProgram.switchTab({
@@ -1407,6 +1527,7 @@
         wsss.close();
       };
     </script>
+    <script type="text/javascript" src="WXdraw.js"></script>
     <script type="text/javascript" src="aac.js"></script>
   </body>
 </html>