Explorar el Código

与ai助手对话分享(提测0612):分享的内容有图片,微信好友分享,打开分享内容没显示图片

lxr hace 2 días
padre
commit
c650bc833c
Se han modificado 1 ficheros con 44 adiciones y 7 borrados
  1. 44 7
      HBuilderProjects/shareAiConsult.html

+ 44 - 7
HBuilderProjects/shareAiConsult.html

@@ -664,6 +664,7 @@
               role: role || "user",
               isImage: true,
               imageUrl: imageUrls[0],
+              images: imageUrls,
               content: content,
             });
             continue;
@@ -815,18 +816,54 @@
         return d.getFullYear() + "年" + (d.getMonth() + 1) + "月" + d.getDate() + "日";
       }
 
+      function normalizeShareMessagesForRender(messages) {
+        var list = Array.isArray(messages) ? messages : [];
+        return list.map(function (msg) {
+          if (!msg || typeof msg !== "object") return msg;
+          var m = Object.assign({}, msg);
+          var imgs = Array.isArray(m.images) ? m.images.slice() : [];
+          if (!imgs.length && m.imageUrl) imgs = [m.imageUrl];
+          if (!imgs.length && m.image) imgs = [m.image];
+          imgs = imgs
+            .map(function (u) {
+              return String(u || "").trim();
+            })
+            .filter(function (u) {
+              return /^https?:\/\//i.test(u);
+            });
+          if (m.isImage || imgs.length) {
+            if (!imgs.length) return m;
+            m.isImage = true;
+            m.imageUrl = imgs[0];
+            m.images = imgs;
+          }
+          return m;
+        });
+      }
+
+      function renderUserImageBubbleHtml(msg) {
+        var imgs = Array.isArray(msg.images) && msg.images.length ? msg.images : [];
+        if (!imgs.length && msg.imageUrl) imgs = [msg.imageUrl];
+        if (!imgs.length) return "";
+        var html = "";
+        for (var i = 0; i < imgs.length; i++) {
+          html +=
+            '<div class="row row--user"><div class="user-bubble"><img class="user-bubble__image" src="' +
+            escHtml(imgs[i]) +
+            '" alt="图片" loading="lazy" decoding="async" /></div></div>';
+        }
+        return html;
+      }
+
       function renderMessages(messages) {
         var html = "";
-        var list = Array.isArray(messages) ? messages : [];
+        var list = normalizeShareMessagesForRender(messages);
         for (var i = 0; i < list.length; i++) {
           var msg = list[i];
           if (!msg) continue;
           if (msg.role === "user") {
-            if (msg.isImage && msg.imageUrl) {
-              html +=
-                '<div class="row row--user"><div class="user-bubble"><img class="user-bubble__image" src="' +
-                escHtml(msg.imageUrl) +
-                '" alt="图片" loading="lazy" decoding="async" /></div></div>';
+            if (msg.isImage && (msg.imageUrl || (msg.images && msg.images.length))) {
+              html += renderUserImageBubbleHtml(msg);
               var imageUserText = String(msg.content || "").trim();
               if (imageUserText) {
                 html +=
@@ -892,7 +929,7 @@
           var msg = list[i];
           if (!msg) continue;
           if (msg.role === "user") {
-            if (msg.isImage && msg.imageUrl) {
+            if (msg.isImage && (msg.imageUrl || (msg.images && msg.images.length))) {
               count += 1;
               continue;
             }