2015-05-18 4 views
1

Я пытаюсь открыть PDF-файл в своем приложении, которое я создаю с помощью Ionic. Я понимаю, что могу сделать это с помощью inAppBrowser.Как открыть файл PDF в Кордове/Ионном приложении?

Сначала я получаю PDF-файл с конечной точки api, после чего я пишу его в файловую систему. Как только он будет записан в файловую систему, я хочу открыть его, используя inAppBrowser. Код у меня сейчас выглядит следующим образом:

$http.get(window.apiUrl + '/doc/54bfcc7b879c686969d2bbfe') 
    .success(function(data){ 
     console.log('PDF GOTTEN SUCCESFULLY. NOW WRITE IT TO A FILE.'); 
     $cordovaFile.writeFile('ticket.pdf', data, true) 
      .then(function (success) { 
       console.log('PDF WAS WRITTEN TO THE FILE SYSTEM'); 
       console.log(JSON.stringify(success)); 
       $cordovaFile.readAsText('ticket.pdf') 
        .then(function (data) { 
         console.log('PDF COULD BE READ FROM THE SYSTEM'); 
         window.open('cdvfile://localhost/persistent/ticket.pdf', '_system', 'location=no'); 
         console.log('AFTER OPENING THE PDF'); 
        }, function (error) { 
         console.log(JSON.stringify(error)); 
        }); 
      }, function (error) { 
       console.log(JSON.stringify(error)); 
      }); 
    }) 
    .error(function(error){ 
     console.log('IMAGE GET FAILURE.'); 
    }); 

Я не получаю ошибки вообще в консоли, но ничего не происходит на экране. Выход я вижу в console.log выглядит следующим образом:

file:///android_asset/www/js/controllers.js: Line 104 : PDF GOTTEN SUCCESFULLY. NOW WRITE IT TO A FILE. 
file:///android_asset/www/js/controllers.js: Line 110 : PDF WAS WRITTEN TO THE FILE SYSTEM 
file:///android_asset/www/js/controllers.js: Line 111 : {"type":"writeend","bubbles":false,"cancelBubble":false,"cancelable":false,"lengthComputable":false,"loaded":0,"total":0,"target":{"fileName":"","length":598874,"localURL":"cdvfile://localhost/persistent/ticket.pdf","position":598874,"readyState":2,"result":null,"error":null,"onwritestart":null,"onprogress":null,"onwrite":null,"onabort":null,"onerror":null}} 
file:///android_asset/www/js/controllers.js: Line 115 : PDF COULD BE READ FROM THE SYSTEM 
file:///android_asset/www/js/controllers.js: Line 119 : AFTER OPENING THE PDF 

Как вы можете видеть, что я жёстко имя билета (ticket.pdf) и путь при открытии его (cdvfile://localhost/persistent/ticket.pdf). Путь к файлу, который я получил от json success-output, как показано на выходе в строке 111 (см. Выше).

Знает ли кто-нибудь, почему это не работает? Все советы приветствуются!

ответ

0

URL-адрес cdvfile: //localhost/persistent/ticket.pdf неверен. Вам понадобится путь, начинающийся с файла: //.

попробовать это:

'Файл: ///storage/emulated/0/ticket.pdf' или 'Файл: ///storage/sdcard0/ticket.pdf'

Смежные вопросы