Przeglądaj źródła

修复ai聊天页面

lxr 1 tydzień temu
rodzic
commit
82bebfa6ee
1 zmienionych plików z 24 dodań i 5 usunięć
  1. 24 5
      HBuilderProjects/shareAiConsult.html

+ 24 - 5
HBuilderProjects/shareAiConsult.html

@@ -157,7 +157,7 @@
       left: 0;
       right: 0;
       bottom: 0;
-      z-index: 20;
+      z-index: 200;
       padding: 10px 15px calc(10px + var(--safe-bottom));
       background: linear-gradient(180deg, rgba(244, 246, 251, 0) 0%, #f4f6fb 36%);
       pointer-events: none;
@@ -211,10 +211,12 @@
       min-height: 48px;
       border-radius: 999px;
       overflow: hidden;
+      z-index: 2;
     }
 
     body.is-wechat.wx-jssdk-ready #launch-btn {
       display: block;
+      pointer-events: auto;
     }
 
     body.is-wechat.wx-jssdk-ready #btnContinue {
@@ -348,6 +350,17 @@
         }
       }
 
+      /** 对话 payload 在 query 中会导致 URL 过长,微信 JSSDK / 开放标签易 launch:fail;读完后清掉 query */
+      function stripPayloadQueryFromUrl() {
+        try {
+          if (!location.search || location.search.indexOf("payload=") < 0) return;
+          var u = new URL(location.href);
+          u.searchParams.delete("payload");
+          var next = u.pathname + (u.search || "") + (u.hash || "");
+          history.replaceState(null, document.title, next);
+        } catch (eStrip) {}
+      }
+
       function getFirstUserQuestion(messages) {
         var list = Array.isArray(messages) ? messages : [];
         for (var i = 0; i < list.length; i++) {
@@ -601,8 +614,7 @@
       }
 
       function getWxConfigSignUrl() {
-        if (String(q("wxSignBaseOnly") || "") === "1") return getWxHtmlUrlBase();
-        return getWxSignPageUrlForApi();
+        return getWxHtmlUrlBase();
       }
 
       function getWxGetConfigApiUrl() {
@@ -1020,10 +1032,17 @@
         document.body.classList.add("is-wechat");
       }
 
+      document.addEventListener("WeixinOpenTagsError", function (e) {
+        console.warn("[WeixinOpenTagsError]", e && e.detail);
+      });
+
+      var sharePayload = parsePayload();
+      stripPayloadQueryFromUrl();
+
       bindWeChatLaunchTagEvents();
-      scheduleWeChatJssdkBootstrap();
       document.getElementById("btnContinue").addEventListener("click", tryOpenApp);
-      render(parsePayload());
+      render(sharePayload);
+      scheduleWeChatJssdkBootstrap();
     })();
   </script>
 </body>