HarmonyOS webview加载html string一直闪退

Error message:Init error. The WebviewController must be associated with a Web component

Error code:17100001

HarmonyOS
2024-12-25 13:42:18
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

原因就是先拿到了html片段,但web组件还没有加载,这个时候去load是会报错的,可以这样操作 可以参考https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-web-V5#oncontrollerattached10

import web_webview from '@ohos.web.webview'
import { router } from '@kit.ArkUI';
import { BusinessError } from '@kit.BasicServicesKit';

@Entry
@Component
struct CommonWebViewPage {
  @State message: string = 'Hello World';
  controller: web_webview.WebviewController = new web_webview.WebviewController()
  @State mode: MixedMode = MixedMode.All
  @State params: Record<string, string> = router.getParams() as Record<string, string>; // 获取传递过来的参数对象

  aboutToAppear(): void {
  }

  loadFromHtmlString() {
    console.log("test ===", "html string == " + this.params['htmlstring'].toString());
    this.controller.loadData("<html><body bgcolor=\"white\">Source:<pre>source</pre></body></html>"
      , "text/htm", "UTF-8", "", "");
    // this.controller.loadUrl('https://www.huawei.com');
  }

  build() {
    Column() {
      Navigation() {
        Web({
          src: this.params['url'].toString().length > 1 ? this.params['url'] : 'https://www.huawei.com',
          controller: this.controller,
          renderMode: RenderMode.SYNC_RENDER
        })
          .onControllerAttached(() => {
            if (this.params['url'].toString().length > 1) {
              //加载 url
              // this.controller.loadUrl(this.params['url']);
            } else {
              // this.controller.loadData(this.params['htmlstring'].toString(),"text/htm","UTF-8");
              this.loadFromHtmlString();
            }
          })

          .mixedMode(this.mode)
          .onlineImageAccess(true)
          .zoomAccess(true)
          .javaScriptAccess(true)
          .domStorageAccess(true)
      }.title(this.params['title'].toString()).mode(NavigationMode.Auto).titleMode(NavigationTitleMode.Mini)
    }
  }
}
分享
微博
QQ
微信
回复
2024-12-25 17:26:17
相关问题
HarmonyOS 使用Webview退
236浏览 • 1回复 待解决
HarmonyOS react-native-webview退问题
225浏览 • 1回复 待解决
自动签名失败一直加载怎么回事?
6613浏览 • 2回复 待解决
加载FFMpeg后APP出现退
422浏览 • 1回复 待解决
HarmonyOS webview加载本地html问题
951浏览 • 1回复 待解决
PolarDB控制台一直加载中怎么回事?
3532浏览 • 1回复 待解决
HarmonyOS 获取定位一直失败
257浏览 • 1回复 待解决
HarmonyOS webview如何加载沙箱html
755浏览 • 1回复 待解决
HarmonyOS 终端运行ohpm一直报错
370浏览 • 1回复 待解决
HarmonyOS accessBackward方法一直返回true
149浏览 • 1回复 待解决
HarmonyOS webview组件如何加载html代码?
736浏览 • 1回复 待解决
HarmonyOS IDE无法打开,一直崩溃
435浏览 • 1回复 待解决
HarmonyOS 应用上架一直loading
82浏览 • 1回复 待解决
http 请求一直报 2300058
1954浏览 • 0回复 待解决
HarmonyOS获取图片旋转值一直报错
681浏览 • 1回复 待解决
HarmonyOS Profiler TIme 一直是initializing
486浏览 • 1回复 待解决
HarmonyOS应用退问题
954浏览 • 1回复 待解决