Ioni c DocumentViewer: Android Не могу просмотреть PDF-файл - PullRequest
0 голосов
/ 08 апреля 2020

Я пытаюсь загрузить, а затем просмотреть pdf-файл с помощью DocumentViewer, пока код работает на iPad, но как только я пробую его на устройстве android, я получаю сообщение об ошибке.

Сильфон - мой структура кода.

    let path = null;
    if(this.platform.is('ios'))
      path = this.file.tempDirectory;
    else  
      path = this.file.dataDirectory;
    const docViewerOpt:DocumentViewerOptions = {
      title: 'Report',
      email : {
        enabled : true
      },
      print : {
        enabled : true
      },
    };

    const transfer: FileTransferObject = this.fileTransfer.create();
    transfer.download(url,path+"report.pdf", true).then((response)=>{
      this.file.checkFile(path, "report.pdf").then((resp)=>{
        if(resp){
          let filePath = response.toURL();
          this.document.viewDocument(filePath, 'application/pdf',docViewerOpt,
            (onError:any)=>{
              console.error('onError',onError);
            }
          );
        }
        else{
          this.alertServ.openAlertModal('fail', 'Failed', 'Downloaded file does not exist.', 'Ok');
        }
      });
    }).catch((error) => {
      console.error("download error " + error);
    });

, но я продолжаю получать эту ошибку на устройстве android.

[console.error]: "Error in SitewaertsDocumentViewer.viewDocument(): " {
[ng]   "status": 9,
[ng]   "message": "Attempt to invoke virtual method 'android.content.res.XmlResourceParser android.content.pm.ProviderInfo.loadXmlMetaData(android.content.pm.PackageManager, java.lang.String)' on a null object reference",
[ng]   "details": "java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.XmlResourceParser android.content.pm.ProviderInfo.loadXmlMetaData(android.content.pm.PackageManager, java.lang.String)' on a null object reference\n\tat android.support.v4.content.FileProvider.parsePathStrategy(FileProvider.java:604)\n\tat android.support.v4.content.FileProvider.getPathStrategy(FileProvider.java:578)\n\tat android.support.v4.content.FileProvider.getUriForFile(FileProvider.java:416)\n\tat de.sitewaerts.cordova.documentviewer.DocumentViewerPlugin._open(DocumentViewerPlugin.java:500)\n\tat de.sitewaerts.cordova.documentviewer.DocumentViewerPlugin.doExecute(DocumentViewerPlugin.java:311)\n\tat de.sitewaerts.cordova.documentviewer.DocumentViewerPlugin.access$000(DocumentViewerPlugin.java:49)\n\tat de.sitewaerts.cordova.documentviewer.DocumentViewerPlugin$1.run(DocumentViewerPlugin.java:184)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)\n\tat java.lang.Thread.run(Thread.java:764)\n"

Я не могу найти источники, объясняющие это. Pls. Мне нужна твоя помощь.

...