zhuli 1 неделя назад
Родитель
Сommit
cfc038363e
1 измененных файлов с 30 добавлено и 4 удалено
  1. 30 4
      HBuilderProjects/shareIndex.html

+ 30 - 4
HBuilderProjects/shareIndex.html

@@ -1144,6 +1144,12 @@
 			var params = new URLSearchParams(raw);
 			var sid = params.get('storeId') || params.get('id') || '';
 			if (sid && !params.get('storeId')) params.set('storeId', sid);
+			if (!params.has('weidu') && params.has('lat')) params.set('weidu', params.get('lat'));
+			if (!params.has('jingdu')) {
+				var lonVal = params.get('lon') || params.get('lng');
+				if (lonVal) params.set('jingdu', lonVal);
+			}
+			if (!params.has('fromShareIndex')) params.set('fromShareIndex', '1');
 			var qs = params.toString();
 			return qs ? ('?' + qs) : '';
 		}
@@ -1346,17 +1352,34 @@
 			return errMsg ? tip + ':' + errMsg : tip;
 		}
 
+		/**
+		 * wx-open-launch-app 的 extinfo:须为 App 可解析的 Uni 路径/深链,不能传 H5 页 URL。
+		 * 优先 JSON { path, query },其次 shopro://…/delicacyDetails?storeId=…(与 buildAppDeepLink 一致)。
+		 */
 		function buildWeChatLaunchExtinfo() {
-			var pageUrl = getWxSignUrlFull();
-			if (pageUrl && pageUrl.length <= 1024) return pageUrl;
 			var path = getAppUniPathForBusinessSection().replace(/^\//, '');
 			var qs = buildAppOpenQueryString().replace(/^\?/, '');
 			try {
-				var pack = JSON.stringify({ path: path, query: qs, h5: pageUrl });
+				var pack = JSON.stringify({ path: path, query: qs });
 				if (pack.length <= 1024) return pack;
 			} catch (eJ) {}
 			var deep = buildAppDeepLink();
-			return deep.length <= 1024 ? deep : (pageUrl || deep).slice(0, 1024);
+			if (deep.length <= 1024) return deep;
+			var params = new URLSearchParams(qs);
+			var mini = new URLSearchParams();
+			var storeId = params.get('storeId') || params.get('id') || '';
+			if (storeId) mini.set('storeId', storeId);
+			var uid = params.get('userId');
+			if (uid) mini.set('userId', uid);
+			var bs = params.get('businessSection');
+			if (bs) mini.set('businessSection', bs);
+			mini.set('fromShareIndex', '1');
+			var miniQs = mini.toString();
+			try {
+				var miniPack = JSON.stringify({ path: path, query: miniQs });
+				if (miniPack.length <= 1024) return miniPack;
+			} catch (eJ2) {}
+			return deep.slice(0, 1024);
 		}
 
 		function setWxInitError(msg) {
@@ -2623,6 +2646,9 @@
 		function applyShareIndexClosedMerchantUi(closed) {
 			var wasClosed = closedMerchantFlag;
 			closedMerchantFlag = closed;
+			if (wasClosed !== closed && weChatJssdkConfigured) {
+				refreshWxLaunchTagAttrs();
+			}
 			var banner = document.getElementById('shareClosedBanner');
 			var contentEl = document.getElementById('shareContentEl');
 			var belowEl = document.getElementById('shareBelowContentEl');