webview组件通过control getBackForwardEntries获取的历史记录不对

在webview加载页面,然后点击页面按钮,按钮执行了 window.open 打开新页面,这时候通过 getBackForwardEntries 获取到的历史记录还是只有一条,accessBackward 也是返回 false。

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
FengTianYa

目前定位到是BackForwardEntries方法是在onLoadIntercept回调中执行的,onLoadIntercept是在页面加载之前执行的回调,并不是页面加载完成后的,所以它在没有退回到首页是记录就是会少一条,可以试下onPageEnd回调这个是正常的,另外可以在Index.ets加上以下代码,就可以实现左滑返回后退一个页面。

onBackPress(): boolean | void { 
  if (this.controller.accessBackward()) { 
  this.controller.backward() 
  return true; 
} 
return false; 
}

根据文档上的描述,最好是先设置UA再加载页面,这样才能避免历史栈错乱​https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-webview-V5#setcustomuseragent10​示例代码如下:

Web({ src: '', controller: this.controller }) 
  .onControllerAttached(() => { 
    this.controller.setCustomUserAgent("Provider/finogeeks (miniprogram; Harmony; FinChat; runtimeSdkVersion/2.42.5)") 
    this.controller.loadUrl("https://www.huawei.com") 
  })
分享
微博
QQ
微信
回复
1天前
相关问题
如何实现搜索栏历史记录
769浏览 • 1回复 待解决
如何通过组件id获取组件
147浏览 • 1回复 待解决
获取鸿蒙分辨率高度不对
5788浏览 • 1回复 待解决
通过webView修改iframeURL
772浏览 • 1回复 待解决
Web组件通过WebCookieManager设置获取cookie
1973浏览 • 1回复 待解决
会话结束时间怎样记录
3122浏览 • 1回复 待解决
javaUI 中webview通过布局创建实例失败
5467浏览 • 1回复 待解决
OceanBase 数据库有怎样发展历史呢?
5602浏览 • 1回复 待解决
HarmonyOS Tabsshadow实际渲染效果不对
132浏览 • 1回复 待解决