README.md

上传文件

介绍

  1. 本工程主要实现了对以下指南文档中 https://docs.openharmony.cn/pages/v5.0/zh-cn/application-dev/web/web-file-upload.md 示例代码片段的工程化,主要目标是实现指南中示例代码需要与sample工程文件同源。

UploadFiles

介绍

  1. 本示例主要介绍Web组件上传文件功能,Web组件支持前端页面选择文件上传功能,应用开发者可以使用onShowvfileSelector)接口来处理前端页面文件上传的请求,如果应用开发者不做任何处理,Web会提供默认行为来处理前端页面文件上传的请求。

效果预览

主页

使用方法

  1. 在主页点击选择文件按钮触发onShowFileSelector事件创建DocumentSelectOptions和DocumentViewPicker,用于打开文件选择器,弹出文件选择器,用户可选择一个文件。

使用Web组件的下载能力

介绍

  1. 本工程主要实现了对以下指南文档中 https://docs.openharmony.cn/pages/v5.0/zh-cn/application-dev/web/web-download.md 示例代码片段的工程化,主要目标是实现指南中示例代码需要与sample工程文件同源。

ListenForPageDown

介绍

  1. 本示例主要介绍使用Web组件监听页面触发的下载功能,通过setDownloadDelegate()向Web组件注册一个DownloadDelegate来监听页面触发的下载任务。资源由Web组件来下载,Web组件会通过DownloadDelegate将下载的进度通知给应用。

效果预览

主页 下载

使用说明

  1. 点击setDownloadDelegate按钮,定义下载委托回调。
  2. 点击下载download.html链接,触发下载任务。

InitiatingADownloadTask

介绍

  1. 本示例主要介绍使用Web组件的下载能力。在Web组件启动时,可通过resumeDownload()接口恢复未完成的下载任务。

效果预览

主页 下载

使用说明

  1. 点击setDownloadDelegate按钮,定义下载委托回调。
  2. 使用startDownload()接口发起一个下载。

ResumeDownload

介绍

  1. 本示例主要介绍使用Web组件的下载能力。使用startDownload()接口发起一个下载,Web组件发起的下载会根据当前显示的url以及Web组件默认的Referrer Policy来计算referrer。

效果预览

主页

使用说明

  1. 点击setDownloadDelegate按钮,定义下载委托回调。
  2. 使用startDownload()接口发起一个下载。
  3. 通过record按钮将当前下载任务保存至持久化文件中,记录下载任务信息。
  4. 点击recovery按钮恢复下载任务。

工程目录

entry/src/main/
|---ets
|---|---entryability
|---|---|---EntryAbility.ets
|---|---pages
|---|---|---UploadFiles.ets
|---|---|---downloadUtil.ets
|---|---|---Index.ets						// 首页
|---|---|---InitiatingADownloadTask.ets
|---|---|---ListenForPageDown.ets
|---|---|---ResumeDownload.ets
|---resources								// 静态资源
|---ohosTest
|---|---ets
|---|---|---tests
|---|---|---|---Ability.test.ets            // 自动化测试用例

具体实现

  • 上传文件,源码参考UploadFiles.ets
    • 在拦截回调中调用ocumentViewPicker启动文件选择器,通过异步方式允许用户从设备存储中选择目标文档,获取对应的文件url。调用FileSelectorResult对象的handleFileList方法,通知Web组件进行文件选择操作。
  • 使用Web组件的下载能力,源码参考ResumeDownload.ets
    • 实例化WebDownloadDelegate对象并通过setDownloadDelegate接口将其绑定至当前Web控制器,接管Web组件的下载行为。
    • 在onBeforeDownload中指定文件存储路径,在onDownloadUpdated中实时获取进度。
    • 通过saveDownloadInfo将当前的下载任务信息序列化保存,用于后续恢复下载任务。
    • 在恢复流程中,首先从本地文件中读取已保存的序列化数据,通过deserialize还原出下载任务对象。随后调用resumeDownload接口,恢复下载任务。

相关权限

ohos.permission.INTERNET

依赖

不涉及。

约束与限制

  1. 本示例仅支持标准系统上运行,支持设备:RK3568。
  2. 本示例支持API18版本SDK,SDK版本号(API Version 18 Release)。
  3. 本示例需要使用DevEco Studio 版本号(5.0.1Release)才可编译运行。

下载

如需单独下载本工程,执行如下命令:

git init
git config core.sparsecheckout true
echo code/DocsSample/ArkWeb/ManageWebPageFileIO > .git/info/sparse-checkout
git remote add origin https://gitee.com/openharmony/applications_app_samples.git
git pull origin master