2015-08-17 3 views
0

Я хочу, чтобы открыть файл PDF, но я должен предоставить cordova.plugins.fileOpener2.open реального пути (т.е. /sdcard/Download/starwars.pdf), так как путь, как то file:///android_asset/www/starwars.pdf не работает, а на самом деле плагин возвращает файл не найден ,Кордовы android_asset реальный путь

Теперь, где находится устройство android_asset dir? Как это реально отображается?

ответ

0

Предполагая, что вы также установили cordova-plugin-file, и при условии, что ваш файл находится внутри вашего приложения на WWW/starwars.pdf, вы могли бы использовать cordova.file.applicationDirectory, чтобы указать на файл:

var filePath = cordova.file.applicationDirectory + 'www/starwars.pdf'; 
cordova.plugins.fileOpener2.open(filePath, 'application/pdf', ... 

cordova.file.applicationDirectory - только для чтения каталог, в котором установлено приложение. (IOS, Android, BlackBerry 10)

EDIT: Кажется, что единственный способ, чтобы сделать эту работу, чтобы передать файл на внешний накопитель, а затем выполнить операцию открытия этого файла. Помимо файла cordova-plugin-файла, вам также нужен кордо-плагин-файл-передача. И, конечно, cordova-plugin-file-opener2.

var filePath = cordova.file.applicationDirectory + '/www/pdf-sample.pdf';   
    window.resolveLocalFileSystemURL(filePath, function(entry) { 
     var fileTransfer = new FileTransfer(); 
     var targetFile = cordova.file.externalDataDirectory + entry.name; 

     fileTransfer.download(
      entry.toURL(), 
      targetFile, 
      function(entry) { 
       cordova.plugins.fileOpener2.open(
        targetFile, 
        'application/pdf', 
        { 
         error : function(error){ alert('open error ' + JSON.stringify(error)) }, 
         success : function(){ } 
        } 
       ); 

      }, 
      function(error) { 
       console.log("download error source " + error.source); 
       console.log("download error target " + error.target); 
       console.log("upload error code" + error.code); 
      } 
     ); 

См рабочую версию приложения Кордова, который выполняет эту операцию в моем Github репо: https://github.com/apandichi/demos/tree/master/pdf-file-open

Обратите внимание, что вам также необходимо приложение PDF Viewer файл для обработки «Открыть PDF» Intent.

+0

Нет, это не работает, потому что cordova.file.applicationDirectory возвращает файл: /// android_asset /, который не работает с плагином! – xdevel2000

+0

Любой прогресс здесь? Я могу получить его, чтобы предоставить мне информацию о файле index.html, но не файл.pdf. Он генерирует только код ошибки 1 - на файлах pdf и docx. –

+0

Кажется, что единственный способ сделать эту работу - передать файл во внешнее хранилище и затем выполнить открытую операцию в этом файле. См. Мой обновленный ответ. –