应用内下载PDF如何在HarmonyOS 自带"文件"APP中显示

应用内下载PDF如何在HarmonyOS 自带"文件"APP中显示。目前存储在沙箱默认文件位置,手机无法看到下载文件。

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

可以使用FilePicker来实现文件保存到本地系统管理,FilePicker对应的官网链接:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/save-user-file-V5

问题处理思路:可以先通过picker获取到要选择或者保存文件的公共路径,然后通过fs.copyFile进行文件复制,核心示例代码如下:

save(){
  const documentSaveOptions = new picker.DocumentSaveOptions(); // 创建文件管理器保存选项实例
  documentSaveOptions.newFileNames = ["icon.txt"]; // 保存文件名(可选)

  const documentViewPicker = new picker.DocumentViewPicker;
  documentViewPicker.save(documentSaveOptions)
    .then(async (documentSaveResult) => {
      // 获取到到图片或者视频文件的URI后进行文件读取等操作
      let uri = documentSaveResult[0];
      console.info('pub uri:' + uri)
      // 沙箱路径文件
      let sanFile = fs.openSync(sanPath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE)
      let pubFile = fs.openSync(uri, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE)
      // 将文件从沙箱路拷贝到公共路径
      fs.copyFileSync(sanFile.fd, pubFile.fd)
    })
    .catch((err:Error) => {
      console.error(`Invoke documentPicker.select failed, message is ${err.message}`); })
}
分享
微博
QQ
微信
回复
3天前
相关问题
HarmonyOS 应用打开pdf
358浏览 • 1回复 待解决
HarmonyOS APP自动下载安装新版本
306浏览 • 1回复 待解决
关于应用下载更新包
451浏览 • 1回复 待解决
HarmonyOS 如何在app全页面添加水印
46浏览 • 1回复 待解决
如何跳转到应用市场app下载页面?
7661浏览 • 1回复 待解决