HarmonyOS 鸿蒙Next:在@ohos.web.webview下实现手势左滑右滑回退上个访问历史记录

HarmonyOS 鸿蒙Next:在@ohos.web.webview下实现手势左滑右滑回退上个访问历史记录 在webview下,向右滑动回退页面怎么实现跟webview里面backward 的效果一样

2 回复

通过重写onBackPress函数来自定义返回逻辑,使用WebviewController判断是否返回上一个Web页面。

import web_webview from '@ohos.web.webview';

@Component
struct Page5 {
  controller: web_webview.WebviewController = new web_webview.WebviewController();

  build() {
    Column() {
      Web({ src: 'http://www.baidu.com', controller: this.controller })//需要手动替换为真实网站
    }
  }

  onBackPress() {
    // 当前页面是否可前进或者后退给定的step步(-1),正数代表前进,负数代表后退
    if (this.controller.accessStep(-1)) {
      if (this.controller.accessBackward()) {
        console.log('forward')
        this.controller.backward()
      }
      // 执行用户自定义返回逻辑
      return true
    } else {
      // 执行系统默认返回逻辑,返回上一个page页
      return false
    }
  }
}

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-webview#accessbackward

NavDestination的onBackPressed是在点击返回键触发,所以返回逻辑需要写在页面生命周期函数onBackPress中

在NavDestination的onBackPressed写了返回逻辑,点击返回键才触发,手势返回没有触发自定义返回逻辑,会直接退出webview

更多关于HarmonyOS 鸿蒙Next:在@ohos.web.webview下实现手势左滑右滑回退上个访问历史记录的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS(鸿蒙)系统中,要在@ohos.web.webview下实现手势左滑右滑回退或前进到上一个访问的历史记录,可以通过监听WebView的手势滑动事件,并根据滑动方向执行相应的浏览器历史记录操作。

具体实现步骤如下:

  1. 监听手势滑动事件:使用鸿蒙系统提供的手势识别API或触摸事件监听器,捕捉用户在WebView上的滑动动作。

  2. 判断滑动方向:根据触摸事件的起点和终点坐标,计算滑动的方向和距离,以区分是左滑还是右滑。

  3. 执行历史记录操作:根据滑动方向,调用WebView的goBack()(左滑回退)或goForward()(右滑前进)方法,以实现浏览器历史记录的回退或前进。

  4. 处理边界情况:在调用goBack()goForward()前,可以检查是否可以回退或前进(通过canGoBack()canGoForward()方法),以避免在无法执行操作时发生错误。

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部