HarmonyOS 鸿蒙Next WebView.ScrollController 在用户触发了滚动,且在滚动未停止的时候调用了scrollTo,这个时候 scrollTo 会不生效,无法scrollTo 到预期的 offsetY 的地方

HarmonyOS 鸿蒙Next WebView.ScrollController 在用户触发了滚动,且在滚动未停止的时候调用了scrollTo,这个时候 scrollTo 会不生效,无法scrollTo 到预期的 offsetY 的地方 ScrollViewWebView.ScrollController 在用户触发了滚动,且在滚动未停止的时候调用了scrollTo,这个时候 scrollTo 会不生效,无法scrollTo 到预期的 offsetY 的地方

2 回复

使用scroll嵌套web组件,使用scroll的scrollTo进行跳转:

import { webview } from '@kit.ArkWeb';

@Entry
@Component
struct WebComponent {

  @State controller: webview.WebviewController = new webview.WebviewController();

  private scrollerForScroll: Scroller = new Scroller()

  build() {

    Column() {

      Button('跳转').onClick(()=>{

        console.info('点击跳转scrollTo')

        this.scrollerForScroll.scrollTo({ xOffset: 0, yOffset: 5000})

      })

      Scroll(this.scrollerForScroll){
        Web({ src: 'https://consumer.huawei.com/cn/', controller: this.controller ,renderMode:RenderMode.SYNC_RENDER})
          .layoutMode(WebLayoutMode.FIT_CONTENT)
          .domStorageAccess(true)
          .javaScriptAccess(true)
      }
    }
  }
}

更多关于HarmonyOS 鸿蒙Next WebView.ScrollController 在用户触发了滚动,且在滚动未停止的时候调用了scrollTo,这个时候 scrollTo 会不生效,无法scrollTo 到预期的 offsetY 的地方的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙系统中,当使用WebView的ScrollController时,如果在用户已经触发滚动且滚动尚未停止的情况下调用scrollTo方法,确实可能出现scrollTo不生效的问题。这是因为WebView的滚动状态管理在滚动过程中可能会覆盖外部调用的scrollTo指令。

具体来说,WebView的滚动是由其内部的滚动机制控制的,当用户进行滚动操作时,这个机制会接管滚动行为,直到滚动完全停止。如果在这个期间外部代码尝试改变滚动位置(如调用scrollTo),由于内部滚动机制还在运行,这个改变可能会被忽略或覆盖。

然而,这些方法的有效性取决于具体的应用场景和WebView的实现细节。如果问题依旧没法解决请联系官网客服,官网地址是

回到顶部