PhoneGap, как скачать и открыть PDF-файл в приложении Android

В последнее время я работаю над созданием приложений для Android в PhoneGap, я довольно новичок в разработке мобильных приложений, и я сначала запустил некоторые приложения, и я застрял, когда пытаюсь загрузить некоторые документы (pdf, doc, jpg) в локальное хранилище и открыть его, после поиска через Google, и я попытался следовать этому решению.

Я следовал точному коду в примере и ниже, как я называю плагины:

window.plugins.downloader.downloadFile(url,'/sdcard/download/', 'test.pdf', true, downloadOkCallbak, downloadErCallbak);
    window.plugins.pdfViewer.showPdf('/sdcard/download/test.pdf');

URL-адрес - мой удаленный файл, когда я выполняю его, я получаю сообщение об ошибке: "Ошибка типа: window.plugins не определен". Любая помощь приветствуется.

[обновление] Мой код функции showPdf:

public String showPdf(String fileName) {

    File file = new File(fileName);

    if (file.exists()) {
        try {
            Uri path = Uri.fromFile(file);
            Intent intent = new Intent(Intent.ACTION_VIEW);
            intent.setDataAndType(path, "application/pdf");
            intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);


            //intent.setData(Uri.parse(fileName));
            this.ctx.startActivity(intent);
            return "";
        } catch (android.content.ActivityNotFoundException e) {
            System.out.println("PdfViewer: Error loading url "+fileName+":"+ e.toString());
            return e.toString();
        }            

    }else{
        return "file not found";
    }

}

[Обновление 2] Я получил ниже ошибку в веб-консоли: Uncaught ReferrenceError: LocalFileSystem не определен в...

В чем может быть проблема?

4 ответа

Решение

У меня была та же проблема, что и у OP, и после многих неудачных подходов я пришел к следующему решению (протестировано с Cordova 3.1.0-3.3.0 и Samsung Galaxy S3 & iOS 7):

Решение

Сначала получите файл, запросив файловую систему, а затем загрузите его с вашего сервера с помощью fileTransfer.download (). После завершения загрузки вызовите FileOpener (откроется всплывающее окно, где можно выбрать такие приложения, как Adobe Reader). Примечание: Обязательно включите функцию FileTransfer через CLI/Terminal: плагин cordova add org.apache.cordova.file

  • Перейдите в папку вашего проекта
  • Откройте CLI / Terminal и введите: cordova plugin add https://github.com/don/FileOpener.git
  • После успешной загрузки и хранения вашего файла на устройстве (см. Выше) вы открываете его с помощью: window.plugins.fileOpener.open("file:///sdcard/Android/data/com.example.application/document.doc") или соответствующий путь на iOS.

Это оно! Удачи!

Удостовериться

Вы должны установить git и установить плагины для файлов (cordova 3.0+)

Плагин для передачи файлов и файлов

$ cordova plugin add org.apache.cordova.file $ cordova plugin add org.apache.cordova.file-transfer

Ps. Попробуй плагин файл Opener2

https://build.phonegap.com/plugins/1117

Убедитесь, что у вас есть эти строки в файле manifest.xml:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

Вы можете найти помощь здесь Как скачать pdf файл в Android?

Попробуйте открыть все документы из URL, выполнив следующие действия:

  • установить этот плагин: плагин cordova добавить https://github.com/ti8m/DocumentHandler
  • используйте этот код:

    handleDocumentWithURL (function () {console.log ('success');}, function (error) {console.log ('fail'); if (error == 53) { console.log('Нет приложения, которое обрабатывает этот файл type. ');}},' http://www.example.com/path/to/document.pdf');

У меня это работает как на Android, так и на IOS. Я использовал его для открытых изображений и файлов PDF.

Android: он открывает файлы с помощью системных приложений, если таковые имеются, в противном случае выдает ошибку, с которой вы можете справиться.

IOS: открывает файлы в виде всплывающих окон, например, с помощью кнопки " Готово" и кнопки " Параметры".

Он не показывает URL ваших документов.

Источник доступен здесь: https://github.com/ti8m/DocumentHandler

Другие вопросы по тегам