HarmonyOS 鸿蒙Next 如何在文件内选择其他app预览文件

HarmonyOS 鸿蒙Next 如何在文件内选择其他app预览文件 就是我有一个pdf,我不想用自带的,想用已安装的wps预览,如何操作

2 回复

参考demo: 运行之后点击传到沙箱,点击预览,选择右上角的使用wps office打开

import common from '@ohos.app.ability.common';
import fs from '@ohos.file.fs';
import { filePreview } from '@kit.PreviewKit';
import { BusinessError } from '@kit.BasicServicesKit';
import fileUri from '@ohos.file.fileuri';
import { picker } from '@kit.CoreFileKit';

let context = getContext(this) as common.UIAbilityContext;
let uiContext = getContext(this);

let fileInfo: filePreview.PreviewInfo = {
  title: '1.xls',
  uri: '',
  mimeType: 'application/vnd.ms-excel'
};

function copyFile() {
  console.log("copyFile!")
  let documentPicker = new picker.DocumentViewPicker();

  let srcFileDescriptor = context.resourceManager.getRawFdSync('1.xls');
  let stat = fs.statSync(srcFileDescriptor.fd)
  console.log(`stat isFile:${stat.isFile()}`);

  fs.stat(srcFileDescriptor.fd).then((stat: fs.Stat) => {
    console.info("get file info succeed, the size of file is " + stat.size);
  }).catch((err: BusinessError) => {
    console.error("get file info failed with error message: " + err.message + ", error code: " + err.code);
  });

  let pathDir = context.filesDir;
  console.log("path:", pathDir)
  let dstPath = pathDir + "/1.xls";
  let dest = fs.openSync(dstPath, fs.OpenMode.CREATE | fs.OpenMode.READ_WRITE);
  let fileUriTmp = fileUri.getUriFromPath(dstPath);
  fileInfo.uri = fileUriTmp;
  let bufsize = 4096
  let buf = new ArrayBuffer(bufsize)
  let off = 0, len = 0, readedLen = 0
  while (len = fs.readSync(srcFileDescriptor.fd, buf, { offset: srcFileDescriptor.offset + off, length: bufsize })) {
    readedLen += len
    fs.writeSync(dest.fd, buf, { offset: off, length: len })
    off = off + len
    if ((srcFileDescriptor.length - readedLen) < bufsize) {
      bufsize = srcFileDescriptor.length - readedLen
    }
  }
  fs.close(dest.fd)
}

@Entry
@Component
struct Xlsx {
  @State message: string = '预览';

  build() {
    Row() {
      Column() {
        Button('传到沙箱')
          .onClick(() =>{
            copyFile()
          })
        Button(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
          .onClick(() => {
            filePreview.openPreview(uiContext, fileInfo).then(() => {
              console.info('openPreview success');
            }).catch((err: BusinessError) => {
              console.error('openPreview failed, err = ' + err.message);
            });
          })
      }
      .width('100%')
    }
    .height('100%')
  }
}

更多关于HarmonyOS 鸿蒙Next 如何在文件内选择其他app预览文件的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next系统中,若想在文件内选择其他应用预览文件,可以按照以下步骤操作:

  1. 打开文件管理器:首先,在设备上找到并打开文件管理器应用。这通常是系统预装的应用,用于浏览和管理设备上的文件。

  2. 定位到目标文件:在文件管理器中,浏览并定位到你想要预览的文件。这可能是一个文档、图片、视频或其他类型的文件。

  3. 长按文件以触发预览选项:找到目标文件后,长按该文件以触发更多的操作选项。在弹出的菜单中,通常会包含“打开方式”或类似的选项。

  4. 选择其他应用预览:点击“打开方式”后,系统会列出所有能够处理该文件类型的应用。浏览列表,选择你希望用来预览该文件的应用。

  5. 预览文件:选择应用后,系统会尝试使用该应用打开并预览文件。如果一切正常,你应该能够在所选应用中看到文件的预览内容。

请注意,不是所有文件类型都能在所有应用中预览。如果某个应用不支持预览特定类型的文件,它可能不会在“打开方式”列表中出现。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部