فهرست منبع

添加监听事件

tremble 3 سال پیش
والد
کامیت
5af433adb3
1فایلهای تغییر یافته به همراه25 افزوده شده و 6 حذف شده
  1. 25 6
      src/app.vue

+ 25 - 6
src/app.vue

@@ -64,6 +64,18 @@ import { useApp, getApp } from "@/app";
 import common from "@/utils/common";
 import * as apis from "@/apis/index.js";
 
+let visibilitychangeFn = () => {
+  if (browser.isTabHidden()) {
+    apis.burying_point({ type: 1 });
+  }
+};
+
+let hashchangefn = () => {
+  if (window.location.hash.indexOf("#showpage") >= 0) {
+    window.history.go(-1);
+  }
+};
+
 const musicPlayer = useMusicPlayer();
 
 let app = null;
@@ -191,6 +203,7 @@ const onClickTagInfo = (el) => {
 
 onMounted(async () => {
   apis.burying_point({ type: 0 });
+
   app = createApp({
     num: browser.getURLParam("m"),
     dom: scene$.value,
@@ -279,7 +292,7 @@ onMounted(async () => {
           e.target.querySelector(".tag-commodity").addEventListener("click", onClickTagInfo);
 
           if (tagid) {
-            document.querySelector(`[data-id="${tagid}"]`)&&document.querySelector(`[data-id="${tagid}"]`).click();
+            document.querySelector(`[data-id="${tagid}"]`) && document.querySelector(`[data-id="${tagid}"]`).click();
             tagid = null;
           }
         }
@@ -373,12 +386,18 @@ onMounted(async () => {
   app.store.on("floorcad", (floor) => store.commit("scene/loadFloorData", floor));
 
   app.render();
+  document.removeEventListener("visibilitychange", visibilitychangeFn);
+  document.addEventListener("visibilitychange", visibilitychangeFn);
 
-  document.addEventListener("visibilitychange", () => {
-    if (document.hidden) {
-      apis.burying_point({ type: 1 });
-    }
-  });
+  if (browser.detectWeixin()) {
+    //ios的ua中无miniProgram,但都有MicroMessenger(表示是微信浏览器)
+    wx.miniProgram.getEnv((res) => {
+      if (res.miniprogram) {
+        window.removeEventListener("hashchange", hashchangefn);
+        window.addEventListener("hashchange", hashchangefn);
+      }
+    });
+  }
 });
 </script>
 <style lang="scss">