zhuli 4 недель назад
Родитель
Сommit
f031941ddf
1 измененных файлов с 44 добавлено и 7 удалено
  1. 44 7
      HBuilderProjects/shareDynamic.html

+ 44 - 7
HBuilderProjects/shareDynamic.html

@@ -786,15 +786,52 @@
 				}
 				}
 			} catch (eShareCk) {}
 			} catch (eShareCk) {}
 			/**
 			/**
-			 * App 内无分享 H5 写入的 newdetailsList;若沿用浏览器 URL 里的 fromHomeFeed=1,
-			 * 详情会走「首页种子」分支并禁止 recommend,表现为仅一条、下滑无更多作品。
+			 * 与微信落地 shareDynamic、group_user buildDynamicShareH5FullUrl 一致:**item 双重 URL 编码**,
+			 * 顺序 `item & needShowMore & fromHomeFeed & fromShareDynamic=1 & 其余`;fromHomeFeed 仍带给 App,
+			 * newdetails 在 fromShareDynamic=1 时忽略其「首页种子」语义。
 			 */
 			 */
-			params.delete('fromHomeFeed');
-			/** 与 group_user newdetails 约定:播放/横竖屏 object-fit 与首页动态进详情一致,且不启用「首页种子」并行拉流;放 query 最前,避免极长 URL 从尾部截断时丢失 */
 			params.delete('fromShareDynamic');
 			params.delete('fromShareDynamic');
-			var qsRest = params.toString();
-			var qsOut = qsRest ? ('?fromShareDynamic=1&' + qsRest) : '?fromShareDynamic=1';
-			return qsOut;
+			var itemForShopro = params.get('item');
+			if (!itemForShopro || String(itemForShopro).trim() === '') {
+				try {
+					itemForShopro = getMergedParam('item');
+				} catch (eGi) {
+					itemForShopro = '';
+				}
+			}
+			var nsmRaw = params.get('needShowMore');
+			var nsmOut =
+				nsmRaw != null && String(nsmRaw).trim() !== '' ? String(nsmRaw).trim() : 'true';
+			var fhfRaw = params.get('fromHomeFeed');
+			var fhfOut =
+				fhfRaw != null && String(fhfRaw).trim() !== '' ? String(fhfRaw).trim() : '1';
+			var segs = [];
+			if (itemForShopro && String(itemForShopro).trim()) {
+				segs.push(
+					'item=' +
+						encodeURIComponent(encodeURIComponent(String(itemForShopro).trim()))
+				);
+			}
+			segs.push('needShowMore=' + encodeURIComponent(nsmOut));
+			segs.push('fromHomeFeed=' + encodeURIComponent(fhfOut));
+			segs.push('fromShareDynamic=1');
+			var skipShoproKeys = {
+				item: 1,
+				needshowmore: 1,
+				fromhomefeed: 1,
+				fromsharedynamic: 1
+			};
+			params.forEach(function (val, key) {
+				var kl = String(key || '')
+					.trim()
+					.toLowerCase();
+				if (!kl || skipShoproKeys[kl]) return;
+				if (val == null) return;
+				var vs = String(val);
+				if (vs === '') return;
+				segs.push(encodeURIComponent(key) + '=' + encodeURIComponent(vs));
+			});
+			return '?' + segs.join('&');
 		}
 		}
 
 
 		/**
 		/**