Web组件如何发起一个下载任务?

Web组件如何发起一个下载任务?

HarmonyOS
2024-08-07 10:28:02
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
伊普洛先生
import web_webview from '@ohos.web.webview';
import business_error from '@ohos.base';

@Entry
@Component
struct Index {
  webviewController: web_webview.WebviewController = new web_webview.WebviewController();
  delegate: web_webview.WebDownloadDelegate = new web_webview.WebDownloadDelegate();
  build() {
    Column() {
      Button('设置WebDownloadDelegate')
        .onClick(() => {
          try {
            this.delegate.onBeforeDownload((webDownloadItem: web_webview.WebDownloadItem) => {
              console.log("will start a download.");
              // 传入一个下载路径,并开始下载。
              webDownloadItem.start("/data/storage/el2/base/cache/web/" + webDownloadItem.getSuggestedFileName());
            })
            this.delegate.onDownloadUpdated((webDownloadItem: web_webview.WebDownloadItem) => {
              console.log("download update guid: " + webDownloadItem.getGuid());
            })
            this.delegate.onDownloadFailed((webDownloadItem: web_webview.WebDownloadItem) => {
              //下载失败
            })
            this.delegate.onDownloadFinish((webDownloadItem: web_webview.WebDownloadItem) => {
              //下载结束
            })
            this.webviewController.setDownloadDelegate(this.delegate);
          } catch (error) {
            let e:business_error.BusinessError = error as business_error.BusinessError;
            console.error(`ErrorCode: ${e.code},  Message: ${e.message}`);
          }
        })
      Button('开始下载')
        .onClick(() => {
          try {
            // 这里指定下载地址为 https://www.example.com/,Web组件会发起一个下载任务将该页面下载下来。
            // 开发者需要替换为自己想要下载的内容的地址。
            this.webviewController.startDownload('https://www.example.com/');
          } catch (error) {
            let e:business_error.BusinessError = error as business_error.BusinessError;
            console.error(`ErrorCode: ${e.code},  Message: ${e.message}`);
          }
        })
      Web({ src: 'www.example.com', controller: this.webviewController })
    }
    .width('100%')
    .height('100%')
    .justifyContent(FlexAlign.Center)
  }
}
分享
微博
QQ
微信
回复
2024-08-07 15:20:05
相关问题
HarmonyOS 如何开启一个本地的web服务
244浏览 • 0回复 待解决
如何实现一个折叠组件
868浏览 • 1回复 待解决
实现一个模拟文件下载的过程
256浏览 • 1回复 待解决
如何指定一个组件的宽高比例?
180浏览 • 1回复 待解决
使用Web组件下载能力Demo
316浏览 • 1回复 待解决
怎样实现Web组件下载能力?
362浏览 • 1回复 待解决
如何知道一个组件的显示和隐藏
449浏览 • 1回复 待解决