HarmonyOS Web控件中的onPageEnd无法拦截#hash跳转

我们的业务H5页面,使用 vue 开发,vue-router 会使用浏览器历史记录的 hash 跳转能力。

1、在其他平台代码上,我们可以使用 WebViewClient.doUpdateVisitedHistory 的方法,来获取历史记录的地址,并且根据逻辑判断,显示返回按钮。

2、但是在HarmonyOS上,我没法获取这个 hash 历史记录变化,有可用的方法可以获取这个hash记录变化吗?

HarmonyOS
2024-09-04 11:38:23
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
FengTianYa

可以使用onRefreshAccessedHistory方法,加载网页页面完成时触发该回调,用于应用更新其访问的历史链接。

参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-basic-components-web-0000001860247877#ZH-CN_TOPIC_0000001860247877__onrefreshaccessedhistory

具体应用可以参考代码:

import web_webview from '@ohos.web.webview'; 
import business_error from '@ohos.base'; 
 
@Entry 
@Component 
struct WebComponent { 
  controller: web_webview.WebviewController = new web_webview.WebviewController(); 
 
  num:number = 1 
 
  // 监听手势返回页面 
  onBackPress() { 
    console.info(JSON.stringify(this.controller.accessBackward()), '是否可跳回') 
    // 当前页面是否可前进或者后退给定的step步(-1),正数代表前进,负数代表后退 
    // return true; 
    if (this.controller.accessBackward()) { 
      this.controller.backward(); // 返回上一个web页 
      // 执行用户自定义返回逻辑 
      return true; 
    } else { 
      // 执行系统默认返回逻辑,返回上一个page页 
      return false; 
    } 
  } 
 
  build() { 
    Column() { 
      Button('loadUrl') 
        .onClick(() => { 
          this.num++ 
          try { 
            // 需要加载的URL是string类型。 
            this.controller.loadUrl('https://www.huawei.com#'+this.num); 
          } catch (error) { 
            let e: business_error.BusinessError = error as business_error.BusinessError; 
            console.error(`ErrorCode: ${e.code}, Message: ${e.message}`); 
          } 
        }) 
      Web({ src: 'https://www.huawei.com', controller: this.controller }) 
        .onRefreshAccessedHistory((event) => { 
          if (event) { 
            console.log('url:' + event.url + ' isReload:' + event.isRefreshed) 
          } 
        }) 
    } 
  } 
}
分享
微博
QQ
微信
回复
2024-09-04 15:11:30
相关问题
Web拦截不到vuerouter跳转
1554浏览 • 0回复 待解决
HarmonyOS web组件怎么拦截请求
573浏览 • 1回复 待解决
HarmonyOS Web对about:blank组件拦截
220浏览 • 1回复 待解决
HarmonyOS web控件执行多次问题
492浏览 • 1回复 待解决
求大佬告知如何拦截控件事件
1783浏览 • 1回复 待解决
redisHash操作是什么?
2809浏览 • 1回复 待解决
场景化控件无法获取到定位信息
1836浏览 • 1回复 待解决
Web组件拦截页面请求响应
931浏览 • 1回复 待解决
HarmonyOS web控件加载富文本,字太小
531浏览 • 1回复 待解决
HarmonyOS 文件Hash处理
32浏览 • 1回复 待解决