HarmonyOS 鸿蒙Next webview加载数据问题

HarmonyOS 鸿蒙Next webview加载数据问题

请看以下代码,只有setTimeout和点击按钮才能正常设置数据,onPageShowaboutToAppear里面调用都不行,是什么原因呢,我在onPageShowaboutToAppear里面调用web_webview.once也不行

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

const TAG = '[MapMarkRemark]'

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

  callback: (obj: keyValue) => void = (obj: keyValue) => {}

  aboutToAppear() {
    setTimeout(() => {
      this.controller.loadData(
        "setTimeout___________________________",
        "text/html",
        "UTF-8"
      );
    }, 500)
    this.controller.loadData(
      "aboutToAppear_______________________aboutToAppear",
      "text/html",
      "UTF-8"
    );
  }

  onPageShow(): void {
    this.controller.loadData(
      "onPageShow____________________________",
      "text/html",
      "UTF-8"
    );
  }

  build() {
    Column() {
      Button('loadData')
      .onClick(() => {
        try {
          this.controller.loadData(
            "loadData______________________",
            "text/html",
            "UTF-8"
          );
        } catch (error) {}
      })
      Web({ src: 'www.example.com', controller: this.controller }).onTitleReceive((event) => {})

    }
    .backgroundColor($r('app.color.bg_color'))
    .width('100%')
    .height('100%')
  }
}

更多关于HarmonyOS 鸿蒙Next webview加载数据问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

该问题的原因是WebviewController对象还未绑定到Web组件; onControllerAttached事件是Controller成功绑定到Web组件时触发该回调,您可以在该回调中或之后,使用WebviewController执行方法

参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-basic-components-web-0000001860247877#ZH-CN_TOPIC_0000001860247877__oncontrollerattached10

更多关于HarmonyOS 鸿蒙Next webview加载数据问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


因为webview还没初始化,你loaddata当然不行了啦!

针对HarmonyOS(鸿蒙)Next webview加载数据问题,以下是一些直接相关的解决方案概述:

在鸿蒙系统中,webview组件用于在应用中嵌入和显示网页内容。若遇到webview加载数据问题,首先检查以下几点:

  1. URL有效性:确保你尝试加载的URL是有效的,并且该网页在浏览器中能够正常访问。

  2. 权限设置:检查应用是否已正确申请并获得了网络访问权限。在鸿蒙系统中,网络访问权限需在manifest文件中声明。

  3. WebView配置:确认WebView组件的配置是否正确,包括是否已正确设置WebViewClient和WebChromeClient等。

  4. 数据格式:如果加载的是本地HTML文件,检查文件路径是否正确,以及文件内容是否符合HTML规范。

  5. 系统兼容性:确认你的应用是否针对当前鸿蒙系统版本进行了适配,有时系统更新可能导致旧有代码出现问题。

  6. 日志调试:利用鸿蒙提供的日志工具,查看WebView加载过程中的错误信息,以便定位问题。

如果经过上述检查后问题依旧存在,可能是由于特定环境下的兼容性问题或其他未知因素导致。此时,建议详细记录问题复现步骤及错误日志,以便进一步分析。

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

回到顶部