소스 검색

feat: 。

jinx 2 달 전
부모
커밋
5f989ffaf2
1개의 변경된 파일96개의 추가작업 그리고 8개의 파일을 삭제
  1. 96 8
      packages/qjkankan-view/src/components/UIGather/mobile/control.pano.vue

+ 96 - 8
packages/qjkankan-view/src/components/UIGather/mobile/control.pano.vue

@@ -123,7 +123,7 @@ const isPlayNormalBGM = computed(() => store.getters["audio/isPlayNormalBGM"]);
 const isPlayV3BGM = computed(() => store.getters["audio/isPlayV3BGM"]);
 const isPlayV4BGM = computed(() => store.getters["audio/isPlayV4BGM"]);
 const isPlayExplanationBGM = computed(() => store.getters["audio/isPlayExplanationBGM"]);
-
+const vrStatus = computed(() => store.getters["functions/vrStatus"]);
 const isFullscreen = ref(false);
 
 const onIntroduce = () => {
@@ -185,15 +185,103 @@ const enterVR = async () => {
    console.error('不支持')
   }
 };
-
-const onVR = (data) => {
-  useApp().then((app) => {
-    enterVR();
-    console.log(app.krpanoDom.get("webvr"));
-    app.krpanoDom.call("webvr.enterVR()");
+// 授权
+const $iosGrantedTips = (cb) => {
+  var ua = navigator.userAgent.toLowerCase();
+  if (ua.indexOf("like mac os x") > 0) {
+    var reg = /os [\d._]*/gi;
+    var verinfo = ua.match(reg);
+    var version = (verinfo + "").replace(/[^0-9|_.]/gi, "").replace(/_/gi, ".");
+    var arr = version.split(".");
+    console.log(arr);
+    if (arr[0] > 12 && arr[1] >= 0) {
+      if (typeof DeviceMotionEvent !=='undefined' && typeof DeviceMotionEvent.requestPermission ==='function') {
+        DeviceMotionEvent.requestPermission().then((permissionState) => {
+          console.log("存在-permissionState", permissionState);
+          if (permissionState == "granted") {
+            cb({
+              msg: "授权成功",
+              code: 1,
+            });
+            // this.reload();
+          } else {
+            cb({
+              msg: "授权失败",
+              code: 0,
+            });
+          }
+        });
+      } else {
+        //13.3以前的版本
+        cb({
+          msg: "无需授权,直接成功",
+          code: 1,
+        });
+      }
+    } else {
+      //13.3以前的版本
+      cb({
+        msg: "无需授权,直接成功",
+        code: 1,
+      });
+    }
+  } else {
+    cb({
+      msg: "无需授权,直接成功",
+      code: 1,
+    });
+  }
+};
+// const onVR = (data) => {
+//   useApp().then((app) => {
+//     enterVR();
+//     console.log(app.krpanoDom.get("webvr"));
+//     app.krpanoDom.call("webvr.enterVR()");
+//   });
+// };
+const onVR = () => {
+  $iosGrantedTips((data) => {
+    console.log(data);
+    if (data.code == 1) {
+      store.commit("functions/setVrStatus", !vrStatus.value);
+      if (currentScene.value.type == "pano") {
+        useApp().then((app) => {
+          app.krpanoDom.call(
+            vrStatus.value ? "webvr.enterVR()" : "webvr.exitVR()"
+          );
+        });
+      } else {
+        if (fdkkCurrentVersion.value == "V4") {
+          document.querySelector("#fdkkifr") &&
+            document.querySelector("#fdkkifr").contentWindow.postMessage(
+              {
+                source: "qjkankan",
+                event: "enterVr",
+                params: {
+                  toggle: vrStatus.value,
+                },
+              },
+              "*"
+            );
+        } else {
+          let ele = document.getElementById("showifr");
+          ele &&
+            ele.contentWindow.postMessage(
+              {
+                source: "mingyuan",
+                event: vrStatus.value ? "vr-in" : "vr-out",
+              },
+              "*"
+            );
+        }
+      }
+    } else {
+      Dialog.alert(
+        "运动和方向访问失败,您需要完全关闭此应用,然后再次打开,并允许访问运动与方向"
+      );
+    }
   });
 };
-
 const onShare = () => {
   store.commit("functions/setShareUrl", true);
 };