HarmonyOS 鸿蒙Next webview的loadData方法如何进入页面就加载

发布于 1周前 作者 vueper 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next webview的loadData方法如何进入页面就加载
webview的loadData方法如何进入页面就加载,当前实现如下,如果不适用延迟的方式可以实现吗

完整demo:

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

@Entry
@Component
struct Agreement {
  controller: webview.WebviewController = new webview.WebviewController();

  aboutToAppear(): void {
    setTimeout(()=>{
      this.controller.loadData(
        "<html><body bgcolor=\"white\">Source:<pre>source</pre></body></html>",
        "text/html",
        "UTF-8"
      );
    }, 1000)
  }

  build() {
    Column() {
      CommonTitle()
      Web({ src: '', controller: this.controller })
    }
  }
}

更多关于HarmonyOS 鸿蒙Next webview的loadData方法如何进入页面就加载的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复
可以使用onControllerAttached,参考文档:ArkWeb_ComponentAPI-结构体-模块-C API-ArkWeb(方舟Web)-应用框架 - 华为HarmonyOS开发者

代码示例:

import { webview } from '@kit.ArkWeb';
import { BusinessError } from '@kit.BasicServicesKit';
[@Entry](/user/Entry)
[@Component](/user/Component)
struct Agreement {
  controller: webview.WebviewController = new webview.WebviewController();
  [@State](/user/State) webData: string = "<!DOCTYPE html>\n" +
    "<html>\n" +
    "<head>\n" +
    "<title>intercept test</title>\n" +
    "</head>\n" +
    "<body>\n" +
    "<h1>Hello world</h1>\n" +
    "</body>\n" +
    "</html>"
  build() {
    Column() {
      // CommonTitle()
      Web({ src: '', controller: this.controller })
        .onControllerAttached(() => {
          this.controller.loadData(this.webData, "text/html", "UTF-8", ' ', ' ')
        })
    }
  }
} 

更多关于HarmonyOS 鸿蒙Next webview的loadData方法如何进入页面就加载的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS(鸿蒙)系统中,Webview组件的loadData方法用于加载本地HTML数据。若你希望在页面加载时就执行loadData方法,可以通过在页面的生命周期回调函数中调用该方法来实现。

具体操作步骤如下:

  1. 创建Webview实例:在布局文件中定义Webview组件,或在代码中动态创建。

  2. 获取Webview实例:通过页面布局或动态创建的实例获取Webview对象。

  3. 页面生命周期回调:在页面的onPageStartonActive等生命周期回调函数中调用loadData方法。这些回调通常表示页面即将开始显示或已激活,是加载数据的合适时机。

  4. 调用loadData:将HTML数据作为字符串传递给loadData方法。例如:

    webview.loadData("<html><body><h1>Hello, HarmonyOS!</h1></body></html>", "text/html", "UTF-8");
    

确保在调用loadData前,Webview实例已经正确初始化,并且HTML数据格式正确。

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

回到顶部