IONIC 3无法在Android中使用@ionic-native/file-opener打开PDF文件

btqmn9zl  于 2022-12-09  发布在  Ionic
关注(0)|答案(2)|浏览(188)

错误{“状态”:9,“消息”:“未找到活动:未找到用于处理意图的“活动”{ act=android.intent.action.VIEW dat= content://io.ionic.starter.fileOpener2.provider/files/1600942455974.pdf typ=应用程序/pdf flg= 0x 3}”
“@ionic-native/文档查看器”:“^4.20.0”,“@原始离子/文件”:“^4.20.0”,“@ionic-native/文件打开程序”:“^4.20.0”,“@离子本机/文件传输”:“^4.20.0”,“@离子原生/闪屏”:“4.20.0”,“@离子原生/状态栏”:“4.20.0”、
编码:

let fackNama = Date.now();
      this.file.copyFile(path, 'help_guide.pdf', this.file.dataDirectory, `${fackNama}.pdf`).then(result => {
        this.fileOpener.open(result.nativeURL, 'application/pdf').then(() => console.log('File is opened'))
        .catch(e => console.log(JSON.stringify(e)));
      });

如何解决此问题?

ac1kyiln

ac1kyiln1#

这个错误是抛出时,插件无法找到一个应用程序打开指定的文件。由于大多数手机来与文件打开器内置,我假设这个应用程序正在使用的用户配置文件,不包括文件打开器。
您可以尝试在插件上使用showOpenWithDialog()。

flvtvl50

flvtvl502#

"我在用这种方式,你也可以用"

downloadFile(url: string) {
    
    if (this.platform.is('ios')) {
      this.pdfFileOpen(url, this.file.syncedDataDirectory);
    } else {
      this.pdfFileOpen(url, this.file.dataDirectory);
    }
   
  }

  pdfFileOpen(url, fileDir) {

    const pdfFileName = url.split('/')[4]
    this.file.createDir(fileDir, 'FolderName', true)
    .then(resp => {
      
      const fileTransfer: FileTransferObject = this.transfer.create();
      fileTransfer.download(url, resp.toURL() + pdfFileName)
        .then(entry => {
          
          this.fileOpener.showOpenWithDialog(resp.toURL() + pdfFileName, 'application/pdf');
        
        });

      });
  }

相关问题