diff --git a/common/js/util-navigate.js b/common/js/util-navigate.js index 017f1fd..9a7e50f 100644 --- a/common/js/util-navigate.js +++ b/common/js/util-navigate.js @@ -702,18 +702,10 @@ export function _safeEncodeForPlatform(v) { // 微信小程序: split on '&' / '=' 解析 url,但不 decode value 给 onLoad。 // - 中文 / 字母 / 数字 → 原样保留(否则 onLoad 拿到 %xx 乱码) // - `&` `=` `?` `#` 空格 → 必须 encode(否则 query 边界被破坏, src 等含 URL 的字段被截断,webview 打不开) - if (platform === 'mp-weixin') { + if (['mp-weixin','mp-harmony'].includes(platform)) { return _encodeUrlDelimiters(once); } - // 鸿蒙元服务: uni.navigateTo 内部整体 encode url(把中文、& 等都 encode)。 - // JS 侧完全不 encode,直接返回 decode roundtrip 后的原文,让鸿蒙原生做唯一一次 encode。 - // (再 encode 会双重编码 → onLoad 拿到 %E6%B2%99%E5%8F%91 乱码) - // webview URL 含 & 时, JS 不 encode,鸿蒙原生 encode 后 & 变 %26,webview 能正常打开。 - if (platform === 'mp-harmony') { - return once; - } - // H5 / 华为快应用: 浏览器不自动编码, JS 侧必须主动 encode 一次(标准 encodeURIComponent) return encodeURIComponent(once); }