HarmonyOS webview页面非顶层路由点击返回会直接关闭窗口

Consulting description: webview嵌入hash路由h5页面,h5页面再路由跳转,点击页面左上角返回,会直接关闭窗口,不会执行webview的后退

代码如下:

processBackPress(): void { 
  if (Global.getInstance().getCache("onHistoryBackCallId")) { 
  this.jsBridge.callback(Global.getInstance() 
  .getCache("onHistoryBackCallId") as string, `{"errMsg":"onHistoryBack:ok"}`); 
  Global.getInstance().removeCache("onHistoryBackCallId"); 
  return; 
} else { 
  if (this.webController.accessBackward()) { 
    this.webController.backward(); 
  } else { 
    router.back(); 
  } 
} 
 
}
HarmonyOS
2024-09-04 11:26:18
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

可以尝试从以下方面尝试:

1、多窗口打开,在多窗口的监听事件中重新跳到一个页面,可以通过监听事件来捕捉窗口的状态变化。参考文档:onWindowNew:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-web-V5#onwindownew9

2、router.back空调(页面栈为空时)会关闭app。提供给h5关闭webview的js方法,直接使用router.back,未对webview实例是否存在进行校验,导致极端场景出现应用退出或回退两个页面的情况。应增加webview实例是否存的判断。

分享
微博
QQ
微信
回复
2024-09-04 16:14:56
相关问题
HarmonyOS 路由返回页面问题
421浏览 • 0回复 待解决
HarmonyOS窗口跳转页面返回问题
263浏览 • 1回复 待解决
HarmonyOS窗口路由切换问题
139浏览 • 1回复 待解决
dialog跳转新页面返回后dialog关闭
281浏览 • 1回复 待解决
如何通过代码关闭窗口
427浏览 • 1回复 待解决
ets开发关闭窗口组件问题
3308浏览 • 1回复 待解决
电脑端窗口关闭实现
661浏览 • 1回复 待解决
HarmonyOS 页面路由 移除页面
65浏览 • 1回复 待解决
page页面关闭关闭指定页面么?
530浏览 • 1回复 待解决
如何用WebView创建新窗口
825浏览 • 1回复 待解决