HarmonyOS 鸿蒙Next 如何看初始化 WebView 组件耗时多久

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

HarmonyOS 鸿蒙Next 如何看初始化 WebView 组件耗时多久

如何看初始化 WebView 组件耗时多久

2 回复

您可以在aboutToAppear()中获取开始渲染前的时间,然后在web_webview.once()Web初始化完成的回调函数中在获取一次时间两者的差值就是webview组件的大致耗时 // xxx.ets

import web_webview from '@ohos.web.webview';
import business_error from '@ohos.base';
import systemDateTime from '@ohos.systemDateTime';

web_webview.once("webInited", () => {
  let end: number = systemDateTime.getTime();
  console.log(start + " : " + end + " " + (end - start));
});

let start: number;

@Entry
@Component
struct WebComponent {
  controller: web_webview.WebviewController = new web_webview.WebviewController();
  private ddd: Dddd = new Dddd();

  aboutToAppear(): void {
    start = systemDateTime.getTime();
  }

  build() {
    Column() {
      Web({ src: $rawfile('hello.html'), controller: this.controller })
        .javaScriptAccess(true)
        .onAlert((event) => {
          if (event) {
            console.log("event.url:" + event.url);
            console.log("event.message:" + event.message);
            AlertDialog.show({
              title: 'onAlert',
              message: event.message,
              primaryButton: {
                value: 'cancel',
                action: () => {
                  event.result.handleCancel();
                }
              },
              secondaryButton: {
                value: 'ok',
                action: () => {
                  event.result.handleConfirm();
                }
              },
              cancel: () => {
                event.result.handleCancel();
              }
            });
          }
          return true;
        })
        .onConfirm((event) => {
          if (event) {
            AlertDialog.show({
              title: '中奖结果',
              message: '恭喜您抽中:' + event.message,
              confirm: {
                value: '确认',
                action: () => {
                  event.result.handleConfirm();
                }
              },
              cancel: () => {
                event.result.handleCancel();
              }
            });
          }
          return true;
        });
    }
  }
}

参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V13/js-apis-webview-V13

更多关于HarmonyOS 鸿蒙Next 如何看初始化 WebView 组件耗时多久的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,查看WebView组件初始化耗时可以通过以下方式实现:

  1. 时间标记:在WebView组件初始化前后设置时间标记。可以使用System.currentTimeMillis()System.nanoTime()获取当前时间戳。

  2. 初始化代码:在WebView组件初始化代码中,记录开始时间。例如,在调用WebView的初始化方法之前记录一个时间变量startTime

  3. 完成回调:如果WebView初始化有异步完成回调,在该回调中记录结束时间。如果没有明确回调,可以在WebView完成加载或某个状态确定后记录结束时间,例如通过监听WebView的加载状态。

  4. 计算耗时:使用结束时间减去开始时间,得到初始化WebView的耗时。

  5. 日志输出:将计算得到的耗时输出到日志中,便于分析。

示例代码(简化):

long startTime = System.currentTimeMillis(); // 假设此处为鸿蒙的等效方法
// WebView初始化代码
webView.init(); // 假设此为鸿蒙WebView的初始化方法
// 假设在初始化完成后触发此方法
void onWebViewInitialized() {
    long endTime = System.currentTimeMillis();
    long duration = endTime - startTime;
    Log.d("WebViewInit", "Initialization time: " + duration + "ms");
}

注意:上述代码中的方法名及类名需根据HarmonyOS实际API进行调整。

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

回到顶部