3***@qq.com
3***@qq.com
  • 发布:2026-02-02 11:08
  • 更新:2026-02-02 11:19
  • 阅读:16

鸿蒙next系统使用plus.runtime.openURL不生效。在手机浏览器中打开H5端,window.open打开新的页面连接不变了,显示浏览器的默认连接

分类:HBuilderX

鸿蒙next系统使用plus.runtime.openURL不生效。在手机浏览器中打开H5端,window.open打开新的页面连接不变了,显示浏览器的默认连接,使用webview页面也是空白的(左侧是预期效果,右边是实际效果)

2026-02-02 11:08 负责人:无 分享
已邀请:
Ask小助手

Ask小助手

欢迎到专业群( HBuilderX技术交流群 ) 咨询,群中有相关专业的管理员和群友。

在鸿蒙 Next 系统里,plus.runtime.openURL 确实已经失效,原因是 HarmonyOS 的 Want 机制 替换了 Android 的 Intent 机制,而 5+ runtime 尚未适配。
知识库已给出官方替代方案:使用 UTS 插件(或现成的 uts-openSchema 插件)来调用系统浏览器。

下面给出最简洁、可直接落地的做法,分 App 端与 H5 端两条线说明。


1. App 端(uni-app 5+ / uni-app-x)

1.1 一键方案:安装官方插件(推荐)

  1. HBuilderX → 插件市场 → 搜索 uts-openSchema → 点击【下载/导入】。
  2. 代码中直接调用:
// #ifdef APP-HARMONY  
import { openSchema } from '@/uni_modules/uts-openSchema'  
openSchema('https://example.com')  
// #endif

插件已内部封装好鸿蒙 Want 调用,无需自己写原生代码。

1.2 手动方案:自建 UTS 插件(无网络时可参考)

如不想装插件,可在 uni_modules 里新建原生插件:

// uni_modules/my-open-url/utssdk/app-harmony/index.ets  
import featureAbility from '@ohos.ability.featureAbility'  

export function openOuterUrl(url: string) {  
  const want = {  
    action: 'ohos.want.action.viewData',  
    entities: ['entity.system.browsable'],  
    uri: url  
  }  
  featureAbility.getContext().startAbility(want)  
}

页面调用:

// #ifdef APP-HARMONY  
import { openOuterUrl } from '@/uni_modules/my-open-url'  
openOuterUrl('https://example.com')  
// #endif

2. H5 端(手机浏览器直接访问)

浏览器安全策略会拦截 window.open 的异步调用,表现为“地址栏不变”。
解决方式只有两种:

  1. 让用户主动点击超链接:
<a target="_blank" rel="noopener" href="https://example.com">立即打开</a>
  1. 企业内浏览器可把域名加入白名单(普通公网浏览器无法干预)。

HBuilderX 无法影响浏览器安全策略,因此 H5 端无代码级修复方案。


3. WebView 空白页问题(若存在)

如果 App 内嵌 WebView 出现空白,请确认:

  • 加载的 H5 地址在 pages.jsonnetwork 白名单内;
  • 服务器允许 iframe 嵌套(X-Frame-Options 未禁止);
  • 使用最新版 uni.webview.js官方下载)并在 UniAppJSBridgeReady 后再调用相关 API。

小结

场景 推荐做法
App-Harmony 安装 uts-openSchema 插件,一行代码即可
App-Android/iOS 继续使用 plus.runtime.openURL 或同一插件
纯 H5 只能让用户点击 <a target="_blank">,无法自动跳转

按以上步骤即可在鸿蒙 Next 系统正常打开外部链接。

内容为 AI 生成,仅供参考
3***@qq.com

3***@qq.com (作者)

刚刚测试使用了一个手机型号是 PORSCHE DESIGN HUAWEI Mate 30,也无法打开,页面一样是空白的

另外一个型号的HUAWEI P20Pro则可以正常渲染页面,

这两个型号的手机存在什么差别吗

要回复问题请先登录注册