OpenHarmony开发者论坛

标题: 我有个需求,要开发浏览器,请问用什么控件,如何监听浏览器的加载和下载事件呢~ [打印本页]

作者: xt1024    时间: 2023-11-3 17:53
标题: 我有个需求,要开发浏览器,请问用什么控件,如何监听浏览器的加载和下载事件呢~
我们想开发个地图wu服务的东西,需要浏览器,想知道有什么控件,怎么能收听加载时间和错误事件,我们需要评估下可行性
作者: westinyang    时间: 2023-11-4 10:42
[md][Web组件使用技巧:扩展window对象、长按菜单、监听下载事件等 - 文章 OpenHarmony开发者论坛](https://forums.openharmony.cn/fo ... ;tid=712&extra=)

- 监听加载是 onPageBegin
- 监听下载是 onDownloadStart

[/md]
作者: 深开鸿_王皓    时间: 2023-11-6 11:36
[md]```@Entry
@Component
struct Index {
   // 定义Web组件的控制器controller
   controller: WebController = new WebController();

   build() {
     Column() {
       Web({ src: $rawfile('index.html'), controller: this.controller  }).fileAccess(true)
        .javaScriptAccess(true)
        .zoomAccess(true)
        .imageAccess(true)
        .height(500)
        .padding(20)
        .onAlert(e =>{
          console.info('onAlert url: ', e.url);
          console.info('onAlert message: ', e.message);
          AlertDialog.show({
            title: `系统弹窗`,
            message: `这是一个系统弹窗,是否确认?`,
            confirm: {
              value: `确定`,
              action: () => {
                console.log('onAlert Button-clicking callback')
                e.result.handleConfirm()
              }
            },
            cancel: () => {
              console.log('onAlert Closed callbacks')
              e.result.handleCancel()
            }
          })
          return true
        })
        .onConfirm(e =>{
           console.log('onConfirm url: '+e.url)
           console.log('onConfirm message: '+e.message)
           AlertDialog.show({
             title: `系统弹窗`,
             message: `这是一个系统弹窗,是否确认?`,
             confirm: {
               value: `确定`,
               action: () => {
                 console.log('onConfirm Button-clicking callback')
                 e.result.handleConfirm()
               }
             },
             cancel: () => {
               console.log('onConfirm Closed callbacks')
               e.result.handleCancel()
             }
           })
           return true
        })
.onConsole(e =>{
           console.log('onConsole ConsoleMessage: '+e.message.getMessage())
           return true
        })
     }
   }
}
```

网页的加载事件参考:
onErrorReceive(callback: (event?: { request: WebResourceRequest, error: WebResourceError }) => void)        网页加载遇到错误时触发该回调。出于性能考虑,建议此回调中尽量执行简单逻辑。request:网页请求的封装信息。error:网页加载资源错误的封装信息 。
onHttpErrorReceive(callback: (event?: { request: WebResourceRequest, response: WebResourceResponse }) => void)        网页加载资源遇到的HTTP错误(响应码>=400)时触发该回调。request:网页请求的封装信息。response:网页响应的封装信息
onPageBegin(callback: (event?: { url: string }) => void)        网页开始加载时触发该回调,且只在主frame触发,iframe或者frameset的内容加载时不会触发此回调。url:页面的URL地址。
onPageEnd(callback: (event?: { url: string }) => void)        网页加载完成时触发该回调,且只在主frame触发。url:页面的URL地址。

[/md]




欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/) Powered by Discuz! X3.5