Quellcode durchsuchen

feat(云机控制): 优化控制权询问。

zengzhixiang vor 2 Jahren
Ursprung
Commit
04917cbffd

+ 62 - 45
static/screenAndroid/WXdraw.js

@@ -91,7 +91,16 @@ function doConnectDirectives() {
       }
       return;
     }
+    if (result.type === 'forwardMsgRep') {
+      // 当前云机无其他终端在线,获得控制权
+      changIsControl(true);
+    }
     if (result.type === 'forwardMsg') {
+      /**
+       * @type {boolean} isControl 当前是否拥有控制权,初始化时为false
+       * @type {string} isAuth 当前云机类型 - huo: 获取的云机,none: 自己的云机
+       * @type {string} username 当前登录的双子星账号username
+       */
       switch (String(result.data.code)) {
         case '3000': {
           // 被询问控制
@@ -102,6 +111,7 @@ function doConnectDirectives() {
                 type: 'forwardMsg',
                 data: {
                   code: '4000',
+                  username,
                   desc: '有控制', // 可选
                 },
               }),
@@ -114,10 +124,12 @@ function doConnectDirectives() {
               type: 'forwardMsg',
               data: {
                 code: '4100',
+                username,
                 desc: '有观看', // 可选
               },
             }),
           );
+          return;
         }
         case '4100': {
           // 收到观看回复
@@ -126,8 +138,17 @@ function doConnectDirectives() {
         }
         case '4000': {
           // 收到控制权回复
-          if (isAuth === 'huo') {
-            // 当前是获取方,
+
+          // 同账号,共同控制
+          if (result.data.username === username) {
+            changIsControl(true);
+            return;
+          }
+
+          // 不同账号
+
+          // 当前是获取方
+          if (isControl && isAuth === 'huo') {
             $.confirm(
               '授权方已收回控制权,您进入观看屏幕模式',
               function () {
@@ -142,54 +163,50 @@ function doConnectDirectives() {
             );
             return;
           }
-          // 当前是机主,是否拿到控制权。
-          $.confirm(
-            '当前云手机正在授控,是否请求获取云手机控制权?',
-            function () {
-              //点击确认后的回调函数
-              var ping = {
-                type: 'forwardMsg',
-                data: {
-                  code: '5000',
-                  desc: '控制权限收回', // 可选
-                },
-              };
-              wsss.send(JSON.stringify(ping));
-              changIsControl(true);
-            },
-            function () {
-              //点击取消后的回调函数
-              changIsControl(false);
-            },
-          );
+          if (!isControl) {
+            // 当前是授权方切没有控制权
+            $.confirm(
+              '当前云手机正在授控,是否请求获取云手机控制权?',
+              function () {
+                //点击确认后的回调函数
+                wsss.send(
+                  JSON.stringify({
+                    type: 'forwardMsg',
+                    data: {
+                      code: '5000',
+                      desc: '控制权限收回', // 可选
+                    },
+                  }),
+                );
+                changIsControl(true);
+              },
+              function () {
+                //点击取消后的回调函数
+                changIsControl(false);
+              },
+            );
+            return;
+          }
           return;
         }
         case '5000': {
-          console.log(result);
-          $.confirm(
-            '授权方已收回控制权,您进入观看屏幕模式',
-            function () {
-              //点击确认后的回调函数
-              changIsControl(false);
-            },
-            function () {
-              changIsControl(false);
-
-              //点击取消后的回调函数
-              quit();
-            },
-          );
+          if (isControl) {
+            $.confirm(
+              '授权方已收回控制权,您进入观看屏幕模式',
+              function () {
+                //点击确认后的回调函数
+                changIsControl(false);
+              },
+              function () {
+                changIsControl(false);
+                //点击取消后的回调函数
+                quit();
+              },
+            );
+            return;
+          }
           return;
         }
-        // case 'phoneSizeChange': {
-        //   window.currentPhoneSize = {
-        //     id: result.data.id,
-        //     width: result.data.width,
-        //     height: result.data.height,
-        //     dpi: result.data.dpi,
-        //   };
-        //   return;
-        // }
         default: {
           return;
         }

+ 2 - 1
static/screenAndroid/WXtrialInterface.html

@@ -271,8 +271,9 @@
 
       var parameters = GetRequest();
       var token = parameters['token'];
-      var userCardId = parameters['userCardId'];
       var mealType = parameters['mealType'];
+      var userCardId = parameters['userCardId'];
+      var username = parameters['username'];
       var videoTimer = null,
         videoTime = 0,
         adType = 0,

+ 62 - 45
static/screenIos/WXdraw.js

@@ -100,7 +100,16 @@ function doConnectDirectives() {
       }
       return;
     }
+    if (result.type === 'forwardMsgRep') {
+      // 当前云机无其他终端在线,获得控制权
+      changIsControl(true);
+    }
     if (result.type === 'forwardMsg') {
+      /**
+       * @type {boolean} isControl 当前是否拥有控制权,初始化时为false
+       * @type {string} isAuth 当前云机类型 - huo: 获取的云机,none: 自己的云机
+       * @type {string} username 当前登录的双子星账号username
+       */
       switch (String(result.data.code)) {
         case '3000': {
           // 被询问控制
@@ -111,6 +120,7 @@ function doConnectDirectives() {
                 type: 'forwardMsg',
                 data: {
                   code: '4000',
+                  username,
                   desc: '有控制', // 可选
                 },
               }),
@@ -123,10 +133,12 @@ function doConnectDirectives() {
               type: 'forwardMsg',
               data: {
                 code: '4100',
+                username,
                 desc: '有观看', // 可选
               },
             }),
           );
+          return;
         }
         case '4100': {
           // 收到观看回复
@@ -135,8 +147,17 @@ function doConnectDirectives() {
         }
         case '4000': {
           // 收到控制权回复
-          if (isAuth === 'huo') {
-            // 当前是获取方,
+
+          // 同账号,共同控制
+          if (result.data.username === username) {
+            changIsControl(true);
+            return;
+          }
+
+          // 不同账号
+
+          // 当前是获取方
+          if (isControl && isAuth === 'huo') {
             $.confirm(
               '授权方已收回控制权,您进入观看屏幕模式',
               function () {
@@ -151,54 +172,50 @@ function doConnectDirectives() {
             );
             return;
           }
-          // 当前是机主,是否拿到控制权。
-          $.confirm(
-            '当前云手机正在授控,是否请求获取云手机控制权?',
-            function () {
-              //点击确认后的回调函数
-              var ping = {
-                type: 'forwardMsg',
-                data: {
-                  code: '5000',
-                  desc: '控制权限收回', // 可选
-                },
-              };
-              wsss.send(JSON.stringify(ping));
-              changIsControl(true);
-            },
-            function () {
-              //点击取消后的回调函数
-              changIsControl(false);
-            },
-          );
+          if (!isControl) {
+            // 当前是授权方切没有控制权
+            $.confirm(
+              '当前云手机正在授控,是否请求获取云手机控制权?',
+              function () {
+                //点击确认后的回调函数
+                wsss.send(
+                  JSON.stringify({
+                    type: 'forwardMsg',
+                    data: {
+                      code: '5000',
+                      desc: '控制权限收回', // 可选
+                    },
+                  }),
+                );
+                changIsControl(true);
+              },
+              function () {
+                //点击取消后的回调函数
+                changIsControl(false);
+              },
+            );
+            return;
+          }
           return;
         }
         case '5000': {
-          console.log(result);
-          $.confirm(
-            '授权方已收回控制权,您进入观看屏幕模式',
-            function () {
-              //点击确认后的回调函数
-              changIsControl(false);
-            },
-            function () {
-              changIsControl(false);
-
-              //点击取消后的回调函数
-              quit();
-            },
-          );
+          if (isControl) {
+            $.confirm(
+              '授权方已收回控制权,您进入观看屏幕模式',
+              function () {
+                //点击确认后的回调函数
+                changIsControl(false);
+              },
+              function () {
+                changIsControl(false);
+                //点击取消后的回调函数
+                quit();
+              },
+            );
+            return;
+          }
           return;
         }
-        // case 'phoneSizeChange': {
-        //   window.currentPhoneSize = {
-        //     id: result.data.id,
-        //     width: result.data.width,
-        //     height: result.data.height,
-        //     dpi: result.data.dpi,
-        //   };
-        //   return;
-        // }
         default: {
           return;
         }

+ 1 - 0
static/screenIos/WXtrialInterface.html

@@ -343,6 +343,7 @@
       var token = parameters['token'];
       var mealType = parameters['mealType'];
       var userCardId = parameters['userCardId'];
+      var username = parameters['username'];
 
       var videoTimer = null,
         videoTime = 0,