|
|
@@ -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();
|