HarmonyOS webview加载html string一直闪退

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

Error code:17100001

HarmonyOS
1天前
浏览
收藏 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
微信
回复
1天前
相关问题
HarmonyOS 使用Webview退
19浏览 • 1回复 待解决
加载FFMpeg后APP出现退
211浏览 • 1回复 待解决
自动签名失败一直加载怎么回事?
6381浏览 • 2回复 待解决
HarmonyOS webview加载本地html问题
508浏览 • 1回复 待解决
http 请求一直报 2300058
1679浏览 • 0回复 待解决
PolarDB控制台一直加载中怎么回事?
3367浏览 • 1回复 待解决
HarmonyOS webview如何加载沙箱html
470浏览 • 1回复 待解决
HarmonyOS IDE无法打开,一直崩溃
128浏览 • 1回复 待解决
HarmonyOS应用退问题
732浏览 • 1回复 待解决
HarmonyOS webview组件如何加载html代码?
489浏览 • 1回复 待解决
HarmonyOS 终端运行ohpm一直报错
28浏览 • 1回复 待解决
HarmonyOS number toFixed方法退
31浏览 • 1回复 待解决
配置OHPM代理一直不成功
612浏览 • 1回复 待解决
info 获取是失败 一直为空
1897浏览 • 1回复 待解决
用华为登录一直报6003错误
8003浏览 • 1回复 待解决
自动签名一直失败怎么回事?
665浏览 • 1回复 待解决
previewer 一直loading failed怎么回事?
2796浏览 • 1回复 待解决
HarmonyOS Profiler TIme 一直是initializing
339浏览 • 1回复 待解决