HarmonyOS web组件上传文件

web的onShowFileSelector回调如何搭配自定义弹窗CustomDialog,实现文件上传。

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

​首先在h5中有type为file的input标签,并在onchange事件中监听文件的改变 ,在用户按下按钮时,在onShowFileSelector中会监听到该事件。

然后通过startAbilityForResult去拉起文j件管理,参数:

type可以过滤文件类型。

num是最大选择文件数。

location是文件存储位置,目前仅支持本地。

windowMode是窗口模式。

当用户选择完文件后,文件管理会以datashare这种uri形式返回过来,在拿到uri后 将其从公共目录copy到应用沙箱路径下,然后将应用沙箱路径通过handleFileList接口传入h5中。

最后onShowFileSelector的返回值,返回true时目前还不支持系统默认弹窗​。

import business_error from '@ohos.base' 
import web_webview from '@ohos.web.webview' 
import common from '@ohos.app.ability.common'; 
import hilog from '@ohos.hilog'; 
 
 
@Entry 
@Component 
struct WebComponent { 
  controller: web_webview.WebviewController = new web_webview.WebviewController() 
  context = getContext(this) as common.UIAbilityContext; 
  async filePicker(){ 
    const abilityResult =await this.context.startAbilityForResult( 
      { 
        action:"ohos.want.action.OPEN_FILE", 
        parameters:{ 
          'key_pick_type':'image/*', 
          'key_pick_num':10, 
          'key_pick_location':[0] 
        } 
      } 
    ); 
    const select_item_list = abilityResult?.want?.parameters; 
    return select_item_list; 
  } 
 
 
  build() { 
    Column() { 
      Web({src:$rawfile('file.html'),controller:this.controller}) 
        .onShowFileSelector((event)=>{ 
          hilog.info(0x0000, 'testTag', '%{public}s', 'Ability---onCreate'); 
          this.filePicker().then(async(filePaths)=>{ 
            if(!filePaths){ 
              event?.result?.handleFileList([]); 
              return; 
            } 
            const uri =filePaths[0]; 
            event?.result?.handleFileList([JSON.stringify(uri)]); 
          }) 
          return true; 
        }) 
    } 
  } 
} 
 
 
<input type="file" onchange="uploadChange(event)"/>
分享
微博
QQ
微信
回复
1天前
相关问题
Web组件如何实现文件上传功能?
281浏览 • 1回复 待解决
HarmonyOS web上传文件和图片
106浏览 • 1回复 待解决
HarmonyOS上传文件问题
291浏览 • 1回复 待解决
HarmonyOS 上传文件相关Demo
285浏览 • 1回复 待解决
HarmonyOS日志文件上传问题
372浏览 • 1回复 待解决
HarmonyOS文件上传怎么写
356浏览 • 1回复 待解决
HarmonyOS Web组件加载html文件异常
325浏览 • 1回复 待解决
HarmonyOS Web 图片上传功能失效
49浏览 • 1回复 待解决
HarmonyOS 文件上传 & 资源读取问题
306浏览 • 1回复 待解决
HarmonyOS 文件上传服务器问题
210浏览 • 1回复 待解决
web组件对html文件的加载
654浏览 • 1回复 待解决
通过web上传图片并进行预览
802浏览 • 1回复 待解决
js开发上传文件路径问题
6085浏览 • 2回复 待解决
NEXT网络请求如何上传文件
1914浏览 • 1回复 待解决
上传文件后,如何接受后端返回数据
1748浏览 • 1回复 待解决
文件上传的本地路径如何获取
250浏览 • 1回复 待解决
HarmonyOS Web组件高度问题
34浏览 • 1回复 待解决
求大佬告知如何将http文件上传
723浏览 • 1回复 待解决