HarmonyOS video自带的下载按钮无法下载视频

web组件加载的网页,当网页中出现video视频,视频自带的下载按钮无法下载视频。如何解决

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
superinsect

参考demo如下:

//web页面
import web_webview from '@ohos.web.webview'
import business_error from '@ohos.base'

@Entry
@Component
struct Webvideo {
  delegate: web_webview.WebDownloadDelegate = new web_webview.WebDownloadDelegate();

  @State message: string = 'Hello World';
  webviewController: web_webview.WebviewController = new web_webview.WebviewController();

  build() {
    RelativeContainer() {
      Web({ src: $rawfile("aaa.html"), controller: this.webviewController })
        .onControllerAttached(()=>{
          try {
            this.delegate.onBeforeDownload((webDownloadItem: web_webview.WebDownloadItem) => {
              console.log("will start a download.");
              // 传入一个下载路径,并开始下载。
              // 如果传入一个不存在的路径,则会下载到默认/data/storage/el2/base/cache/web/目录。
              webDownloadItem.start("/data/storage/el2/base/cache/web/" + webDownloadItem.getSuggestedFileName());
            })
            this.delegate.onDownloadUpdated((webDownloadItem: web_webview.WebDownloadItem) => {
              // 下载任务的唯一标识。
              console.log("download update guid: " + webDownloadItem.getGuid());
              // 下载的进度。
              console.log("download update guid: " + webDownloadItem.getPercentComplete());
              // 当前的下载速度。
              console.log("download update speed: " + webDownloadItem.getCurrentSpeed())
            })
            this.delegate.onDownloadFailed((webDownloadItem: web_webview.WebDownloadItem) => {
              console.log("download failed guid: " + webDownloadItem.getGuid());
              // 下载任务失败的错误码。
              console.log("download failed guid: " + webDownloadItem.getLastErrorCode());
            })
            this.delegate.onDownloadFinish((webDownloadItem: web_webview.WebDownloadItem) => {


              console.log("download finish guid: " + webDownloadItem.getGuid());
            })
            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}`);
          }
        })
    }
    .height('100%')
    .width('100%')
  }
}
<div >
  <span style="font-size:10px">hello</span>
  </div>
  <div style="width:100;">

  <img border="0" src="" alt="Pulpit rock" width="304" height="228">
  <!--    <video src=""-->

  <!--    ></video>-->

  <video width="320" height="240" controls>
  <source src="" type="video/mp4">
  <!--        <source src="movie.ogg" type="video/ogg">-->
  </video>
  </div>
分享
微博
QQ
微信
回复
1天前
相关问题
视频链接无法下载,该怎么解决啊?
322浏览 • 1回复 待解决
module资源无法下载
873浏览 • 1回复 待解决
HarmonyOS flutter组件无法自动下载
39浏览 • 1回复 待解决
MacOS DevEco Studio 无法下载 HarmonyOS SDK
10992浏览 • 3回复 待解决
HarmonyOS 视频照片下载到沙箱并读取
25浏览 • 1回复 待解决
软件下载问题 软件下载问题!?!
5719浏览 • 1回复 待解决
下载队列如何干预下载顺序
706浏览 • 1回复 待解决
hpm下载库出错,不能下载,请指点
6475浏览 • 1回复 待解决
HarmonyOS video视频问题
19浏览 • 1回复 待解决