Web组件加载不存在的file协议地址时没有触发onLoadIntercept和onErrorReceive生命周期

代码如下:

@Entry 
@Component 
struct Index { 
  @State num: number = 0 
 
  build() { 
    Column(){ 
      Web({ src: 'file:///index.html', controller: new web_webview.WebviewController() }) 
        .onLoadIntercept((data) => { 
          return false 
        }) 
        .onErrorReceive((event) => { 
          console.error(event?.error.getErrorInfo()) 
        }) 
    }.width('100%').height('100%') 
  } 
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
HarmonyOS
2024-11-07 10:12:00
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
zbw_apple

​对于onLoadIntercept:当Web组件加载url(此url对应的html文件存在)之前触发该回调,用于判断是否阻止此次访问。默认允许加载;

对于onInterceptRequest:当Web组件加载url(此url对应的html文件存在)之前触发该回调,用于拦截url并返回响应数据。

对于onErrorReceive:网页加载遇到错误时触发该回调。出于性能考虑,建议此回调中尽量执行简单逻辑。在无网络的情况下,触发此回调。​

import web_webview from '@ohos.web.webview' 
 
@Entry 
@Component 
struct Web3Page { 
  @State num: number = 0 
  controller: web_webview.WebviewController = new web_webview.WebviewController(); 
 
  build() { 
    Column() { 
 
      Button("ClientCertAuth") 
        .onClick(() => { 
          try { 
            // web加载沙箱中文件是需要带文件协议前缀file://,需要对loadUrl进行异常捕获以防止文件不存在造成的崩溃问题 
            this.controller.loadUrl('file://index.html'); 
          } catch (error) { 
            console.log('xxx' + error) 
          } 
        }) 
 
      Web({ src: $rawfile('index.html'), controller: this.controller }) 
        .onLoadIntercept((data) => { 
          console.log('hhhh') 
          return false 
        }) 
        .onErrorReceive((event) => { 
          if (event) { 
            console.log('getErrorInfo:' + event.error.getErrorInfo()) 
            console.log('getErrorCode:' + event.error.getErrorCode()) 
          } 
        }) 
    } 
    .width('100%') 
    .height('100%') 
  } 
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
分享
微博
QQ
微信
回复
2024-11-07 17:32:27
相关问题
HarmonyOS 生命周期触发
674浏览 • 1回复 待解决
真机运行,UDID不存在
7076浏览 • 1回复 待解决
HarmonyOS 生命周期回调触发
701浏览 • 1回复 待解决
HarmonyOS 安装时报错依赖模块不存在
2124浏览 • 1回复 待解决
AbilityStage组件容器生命周期回调
4229浏览 • 1回复 待解决
Dialog组件生命周期问题
1092浏览 • 1回复 待解决
HarmonyOS TabContent页面生命周期触发
1289浏览 • 1回复 待解决
HarmonyOS 哪些情况下主窗口不存在
570浏览 • 1回复 待解决
如何实现文件不存在则创建文件
2886浏览 • 1回复 待解决
HarmonyOS Navigation跳转组件生命周期
1907浏览 • 2回复 待解决
如何理解重写onBackPress生命周期
3336浏览 • 1回复 待解决
HarmonyOS tab组件生命周期问题
727浏览 • 1回复 待解决
如何知晓navigation组件生命周期
904浏览 • 1回复 待解决
HarmonyOS 首页组件生命周期问题
696浏览 • 1回复 待解决