Browse Source

修复部分非真实手机,miss DeviceMotionEvent的IOS flag引起的逻辑

gemercheung 1 year ago
parent
commit
00a5791c13

+ 5 - 2
packages/qjkankan-view/src/components/UIGather/list.vue

@@ -293,8 +293,11 @@ const initScenesSwiper = () => {
   console.warn("initScenesSwiper");
   nextTick(() => {
     if (window.scenesNatSwiper) {
-      window.scenesNatSwiper.update();
-      window.scenesNatSwiper.slideReset();
+      try {
+        window.scenesNatSwiper.slides.length > 0 &&  window.scenesNatSwiper.update();
+        window.scenesNatSwiper.slideReset();
+      } catch (error) {}
+
       // window.scenesNatSwiper = null;
     } else {
       window.scenesNatSwiper = new Swiper("#swScenes", {

+ 9 - 3
packages/qjkankan-view/src/components/UIGather/mobile/control.right.vue

@@ -53,11 +53,10 @@ const $iosGrantedTips = (cb) => {
     var version = (verinfo + "").replace(/[^0-9|_.]/gi, "").replace(/_/gi, ".");
     var arr = version.split(".");
     console.log(arr);
-
     if (arr[0] > 12 && arr[1] >= 0) {
-      //对13.3以后的版本处理,包括13.3,
-      DeviceMotionEvent &&
+      if (typeof DeviceMotionEvent !=='undefined' && typeof DeviceMotionEvent.requestPermission ==='function') {
         DeviceMotionEvent.requestPermission().then((permissionState) => {
+          console.log("存在-permissionState", permissionState);
           if (permissionState == "granted") {
             cb({
               msg: "授权成功",
@@ -71,6 +70,13 @@ const $iosGrantedTips = (cb) => {
             });
           }
         });
+      } else {
+        //13.3以前的版本
+        cb({
+          msg: "无需授权,直接成功",
+          code: 1,
+        });
+      }
     } else {
       //13.3以前的版本
       cb({

+ 1 - 1
packages/qjkankan-view/src/components/UIGather/mobile/list.vue

@@ -270,7 +270,7 @@ const initScenesSwiper = () => {
   console.warn("initScenesSwiper");
   nextTick(() => {
     if (window.scenesNatSwiper) {
-      window.scenesNatSwiper.update();
+      window.scenesNatSwiper.slides.length > 0 && window.scenesNatSwiper.update();
       window.scenesNatSwiper.slideReset();
       // window.scenesNatSwiper = null;
     } else {

+ 2 - 1
packages/qjkankan-view/src/hooks/useAudio.js

@@ -15,7 +15,8 @@ const isDoneforCover = computed(() => store.getters["scene/isDoneforCover"]);
 const currentScene = computed(() => store.getters["scene/currentScene"]);
 const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
 const isShowCover = computed(() =>
-  "isShowCover" in store.getters["scene/metadata"].coverInfo
+(store.getters["scene/metadata"].coverInfo &&
+"isShowCover" in store.getters["scene/metadata"].coverInfo)
     ? store.getters["scene/metadata"].coverInfo.isShowCover === 1
     : false
 );