Эх сурвалжийг харах

/play share redirect to /share

guoziyun 11 сар өмнө
parent
commit
20ea0cb1a9
2 өөрчлөгдсөн 57 нэмэгдсэн , 1 устгасан
  1. 3 0
      routes/v2/index.js
  2. 54 1
      views/v2/play.ejs

+ 3 - 0
routes/v2/index.js

@@ -85,11 +85,14 @@ router.get('/play/:id', function (req, res, next) {
       // deeplink 相关
       let applink = `https://art.pcoloring.com${req.originalUrl}`;
 
+      let sharePageUrl = `https://art.pcoloring.com/share/${id}`;
+
       let data = {
         id,
         uri: req.originalUrl,
         imageUrl: workUrl,
         applink,
+        sharePageUrl,
       };
 
       // 渲染EJS模板到内存中

+ 54 - 1
views/v2/play.ejs

@@ -198,7 +198,13 @@
           <span style="margin-top: 5px;">Download</span>
         </div>
       </a>
-      <div id="finish-share" data-network="sharethis" class="tools-btn st-custom-button">
+      <div id="finish-share" class="tools-btn st-custom-button"
+        data-network="sharethis"
+        data-url="<%= sharePageUrl %>"
+        data-title="Come experience this artwork in the Art Number Coloring App!"
+        data-description="My latest coloring artwork, waiting for you to play!"
+        data-services="facebook"
+        >
         <img class="btn-img"
           src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4CAMAAAAOusbgAAAAwFBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+ZmZn9/f2goKCdnZ319fX5+fny8vLc3NywsLDZ2dmlpaW7u7uoqKjV1dXm5ubFxcXu7u7g4ODR0dHCwsK+vr62trbj4+PLy8utra3q6uqysrKqqqqioqKP/bhpAAAAInRSTlMA7Po2BsZV35ljSSkcE8L17+fi0su7ubKspaKLe2tLQC0Brj0GYQAABFdJREFUaN601tl6okAQBeACAXWMxn03mgMo7vsSo5n3f6uZzw6fCtJi0/xXenXooqsKepnWM9rNql5KKqqqJEt6tdk2ehrFK9OpJ/FQst7JUDyy6UYBXIVGOkuSaUZNRQhqzZBZ9UQqj9DyqQTJ0a3gRZUuRfdHhwD9T9QilyGoHKXg2RQiSIle8c+0gkiU9CcJeMshstwbvexDgQTKB71Ga0GSlvZSmXVIo79Q7kwREhUzoZtXgVRKIuSseodk76HmmKFCOtUIcV4VMVCfnjnxjli8J4groyAmSobbv0XEpsjpZ01HjHSNgrQQq1bgXkDMPgJesIKYKW8P934Osct9kl8aUay352nf/tmPHPCkySerQNxwb7r+LiwEU7LklYK4jW3eOA8QLOUblRA3Me/Necne0VmGsKXpNeZUu+zZSRBmzU2fLYLd7ykdwrYms1o6w9E3+207CJSjG12IY1n2iR1/xZInCNalqwqEDVnSCIw1vvydIVhFzpX+ugRN4dqwiw2OhJQennhOOLj874Ph97KWByA32AZHXiPGAI/8UsMgpoYIBvfX2Pp2K8BRY7lZFVGM2Utdstyde8l51KyEfYijyey+BuvJ3DdAONuxgQjWM/OBBfgal+ACGNE97He2wFeg/zIQNdyZD/04eCZDRB2IGez65kMHB091iKj+/GSbxXZ0su5jVzex9upa8ukEIdSJKAkua+Guuv0QLud4E9tfDYDh4vBjT8e7jYUwkkQauJZT82pl/cba97ECNOqBZ+H5pnFY7NVuACE9/qAemaY3eXsby6ovwqA2gq3997YfOZZpUxPBDiYzn63GvmeYrRFBk6oIdGIJ9ujSUwdJsUyV9315ZMV1I26SDydEpFMJTODCO+LXwK32eYnISrz5wVr45HmQ+RISJElBIHZCB669u/IkUEiFD//EI8ig/mPO3FYTCIIgirpGTRAScg8JgYqyMZcHQYX1+v9/JczLKA0zTB9B6wdW3O3uqlPmwdl33OgUapu/OvtVj+cjcbXsx5Wf4/8//uheYpwSm2s7E9R9aoHEXW31C4eqa1Zm4jqdclc/mSORvsfTDbrFUW/2LGYcSLM6uJHLbzn1nk1s1nP9ROgRZ6su81y6ylif6DKno4Pfsvs6nq16YVxm1vpUKpN1mdtZMy711aqCvXWoDpTFnSR6wdD7NAlxzZed9AIijLQOs+VJi/pAoS3OVmk+1g2MqWG2yomA7ngw18TBQPQKUAShPhoA+AI4l9pDgJsA2dPz2QAbQIqA3uq2AhAV8Gr1ATYGhF7qAFAOOgk9gmoAtDDSJyhDQO+kLqp/3E2bdM0KL2e3KD3gis/VpkodUGoS9UGNS9QaguKaaHBJVf2+ezsgAACEYRjm3zUagA3a+0ie4AQWx+gDFB65KSMjIqtqQjIqnWthQTKPbIBQOoFNo18Dcw7Cbg9lz+B9V1e4DRrOknKacNztaDdazahl+Uz3rQ8uGhTrMQRabC8AAAAASUVORK5CYII=" />
         <span style="margin-top: 5px;">Share</span>
@@ -212,6 +218,53 @@
 
   <div id="toast" class="toast toast-hidden"></div>
 
+
+  <script>
+  document.addEventListener('DOMContentLoaded', () => {
+    // MARK: 1. 获取用户 UUID
+    const uuidKey = 'artNumberColoringUserUUID'; // 用于 localStorage 的键名
+    let userUUID = localStorage.getItem(uuidKey);
+
+    if (!userUUID) {
+        // 如果 localStorage 中没有 UUID,则生成一个新的
+        // 确保这里的 UUID 生成逻辑与您在 play 页面中保存 UUID 的逻辑一致
+        if (window.crypto && window.crypto.randomUUID) {
+            userUUID = window.crypto.randomUUID();
+        } else {
+            userUUID = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
+                const r = Math.random() * 16 | 0;
+                const v = c === 'x' ? r : (r & 0x3 | 0x8);
+                return v.toString(16);
+            });
+        }
+        localStorage.setItem(uuidKey, userUUID); // 存储新生成的 UUID
+    }
+
+    const sharePageBaseUrl = `https://art.pcoloring.com/share/<%= id %>`;
+    const sharePageUrlWithUUID = `${sharePageBaseUrl}?uuid=${userUUID}`;
+
+    const shareThisContainer = document.querySelector('#finish-share');
+    if (shareThisContainer) {
+        shareThisContainer.setAttribute('data-url', sharePageUrlWithUUID);
+        // MARK: 2. (重要) 如果 ShareThis 库已经加载,需要调用其 update 方法来刷新
+        // ShareThis 库通常会异步加载,所以我们需要确保在它加载完成后再更新
+        // 或者在它加载后立即调用 update。
+        // 最可靠的方式是监听 ShareThis 的全局对象
+        if (window.st && window.st.sharethis && typeof window.st.sharethis.update === 'function') {
+            window.st.sharethis.update();
+            console.log("ShareThis 按钮 URL 已更新并刷新:", sharePageUrlWithUUID);
+        } else {
+            // 如果 ShareThis 尚未加载,我们可以在这里设置一个监听器,或者依赖它在加载时读取 data-url
+            // 但设置 data-url 属性通常在 ShareThis 初始化时会被读取
+            console.log("ShareThis 按钮 data-url 已设置:", sharePageUrlWithUUID);
+        }
+    } else {
+        console.error("未找到 ShareThis 分享按钮容器");
+    }
+});
+
+  </script>
+
 </body>
 
 </html>