HarmonyOS 鸿蒙Next Web 向下滚动惯性取消方法:调用WebviewController的scrollTo(0,0)后如何取消滚动惯性?

发布于 1周前 作者 caililin 来自 鸿蒙OS

HarmonyOS 鸿蒙Next Web 向下滚动惯性取消方法:调用WebviewController的scrollTo(0,0)后如何取消滚动惯性?

在Web 向下滚动中,调用其WebviewController 的scrollTo(0,0)方法回到顶部后,依然会有向下的滚动惯性,如何取消这个惯性?

6 回复

本地测试无法复现,确认你的sdk版本和deveco版本是否最新。

下面是我的demo:

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

@Entry
@Component
struct Index {
  controller: webview.WebviewController = new webview.WebviewController();
  build() {
    Column() {
      Button('scrollTo')
        .onClick(() => {
          try {
            this.controller.scrollTo(0, 0);
          } catch (error) {
            console.error(`ErrorCode: ${(error as BusinessError).code},  Message: ${(error as BusinessError).message}`);
          }
        })
      Web({ src:'www.baidu.com', controller: this.controller })
    }
  }
}

您好,测试demo如下:

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

@Entry
@Component
struct Index {
  controller: webview.WebviewController = new webview.WebviewController();
  build() {
    Column() {
      Button('scrollTo')
        .onClick(() => {
          try {
            this.controller.scrollTo(0, 0);
          } catch (error) {
            console.error(`ErrorCode: ${(error as BusinessError).code},  Message: ${(error as BusinessError).message}`);
          }
        })
      Web({ src:'www.baidu.com', controller: this.controller })
    }
  }
}

你是不是还没滚动结束的时候点击回到顶部了?这个正常的吧。等到滚动结束后,点击可以回到顶部

找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17

我的问题就是要解决这个呀,滚动中不让用户点回到顶部 不合适吧

在HarmonyOS鸿蒙Next Web环境中,若要在调用WebViewControllerscrollTo(0,0)方法后取消滚动惯性,通常需通过调整滚动行为或利用特定的API来实现。不过,标准的Webview接口通常不直接支持取消滚动惯性的操作。以下是一种可能的实现思路:

  1. 调整滚动动画:尝试通过调整滚动动画的参数来减少或消除惯性效果。这通常涉及到底层渲染引擎的修改,可能需要深入WebView的实现细节。

  2. JavaScript干预:在Webview加载的页面中,通过JavaScript监听滚动事件,并在滚动到目标位置(如scrollTo(0,0))时,通过阻止默认行为或立即重置位置来减少惯性滚动的影响。

  3. 使用自定义组件:如果上述方法不可行,考虑使用自定义的滚动组件替代标准的WebView滚动,这样可以在组件层面完全控制滚动行为。

请注意,这些方法可能需要根据你的具体应用场景和WebView的实现细节进行调整。由于HarmonyOS平台的特殊性,某些方法可能并不适用。

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

回到顶部