zhuli hai 4 semanas
pai
achega
8f48ec3bce
Modificáronse 1 ficheiros con 23 adicións e 0 borrados
  1. 23 0
      HBuilderProjects/shareDynamic.html

+ 23 - 0
HBuilderProjects/shareDynamic.html

@@ -697,6 +697,29 @@
 		function buildAppOpenQueryStringMerged() {
 			var params = mergeSearchAndHashParams();
 
+			/**
+			 * 唤起 newdetails 与 H5 **query 原样一致**:用浏览器地址栏原始串 + `fromShareDynamic=1`,
+			 * 避免 item 经 JSON.stringify / URLSearchParams 再编码与微信落地链不一致。
+			 * 仅「仅有 search」或「仅有 hash 内 ? 段」时走此路径;二者皆有或皆无则走下方补全。
+			 */
+			var rawSearch = location.search && location.search.length > 1 ? location.search.slice(1) : '';
+			var hash0 = location.hash || '';
+			var hqi0 = hash0.indexOf('?');
+			var rawHashQ = hqi0 >= 0 ? hash0.slice(hqi0 + 1) : '';
+			function appendFromShareDynamicToRaw(qs) {
+				var s = String(qs || '').trim();
+				if (!s) return 'fromShareDynamic=1';
+				var pad = '&' + s + '&';
+				if (/[&?](fromShareDynamic|FROMSHAREDYNAMIC)=/i.test(pad)) return s;
+				return s + '&fromShareDynamic=1';
+			}
+			if (rawSearch && !rawHashQ) {
+				return '?' + appendFromShareDynamicToRaw(rawSearch);
+			}
+			if (!rawSearch && rawHashQ) {
+				return '?' + appendFromShareDynamicToRaw(rawHashQ);
+			}
+
 			/** newdetails onLoad:仅当地址栏未带 item 时补全;同时按需补顶层 imagePath */
 			if (!params.has('item')) {
 				var itemObj = parseOptionsItem();