HarmonyOS 鸿蒙Next Api12中Web组件加载H5的a标签因target="_blank"设置导致页面卡住不动
HarmonyOS 鸿蒙Next Api12中Web组件加载H5的a标签因target="_blank"设置导致页面卡住不动
Api12中Web组件加载的H5链接中包含了<a href=“xxx” target="_blank"> ,当点击此a标签时由于设置了 target="_blank" ,导致页面卡住不动 ,未设置target="_blank"的a标签能正常跳转,如何解决
web组件如果支持多窗口,即配置了multiWindowAccess为true,则需要在onWindowNew中调用event.handler.setWebController接口,否则会造成Render进程阻塞。应用没有调用event.handler.setWebController接口导致
参考:
web组件默认拦截了新窗口创建事件,在web组件内添加监听onWindowNew事件即可打开。
.onWindowNew((event)=>{
event.handler.setWebController(null)
this.controller.loadUrl(event.targetUrl)
})
我这超链接是一个doc文件,加载之后依然没有反应,难道是不支持显示??
针对HarmonyOS 鸿蒙Next Api12中Web组件加载H5页面时,a标签因设置了target="_blank"而导致页面卡住不动的问题,这通常是由于Web组件默认拦截了新窗口创建事件所造成的。
要解决这个问题,你需要确保在Web组件的配置中支持多窗口,即配置multiWindowAccess为true。同时,你需要在Web组件内添加对onWindowNew事件的监听,并在事件处理函数中调用event.handler.setWebController接口,以避免Render进程阻塞。具体的代码实现如下:
.onWindowNew((event) => {
event.handler.setWebController(null);
this.controller.loadUrl(event.targetUrl);
});
这段代码的作用是,在尝试打开新窗口时,通过调用setWebController接口来取消默认的新窗口创建行为,并加载目标URL到当前Web组件中。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html 。