Cordova / Ionic – Скачать файл с InAppBrowser

Сценарий выглядит следующим образом: я открываю веб-сайт в InAppBrowser, после того как пользователь заканчивает работу там, сайт создает .pdf для загрузки пользователем, проблема в том, что PDF-файл не загружается, он открывает его в браузер.

Есть ли способ загрузить его из InAppBrowser? В настоящее время я работаю над iOS-приложением, поэтому решение будет лучше для iOS.

Заранее спасибо.

One Solution collect form web for “Cordova / Ionic – Скачать файл с InAppBrowser”

Следуя советам @jcesarmobile, вот что я придумал:

Сначала мне пришлось установить кордону-плагин-файл-передачу

Открыть URL-адрес

 var url = "http://mi-fancy-url.com"; var windowref = window.open(url, '_blank', 'location=no,closebuttoncaption=Cerrar,toolbar=yes,enableViewportScale=yes'); 

Создайте прослушиватель в этом windowref для события loadstart и проверьте, что загружаемое является pdf (это мой случай).

 windowref.addEventListener('loadstart', function(e) { var url = e.url; var extension = url.substr(url.length - 4); if (extension == '.pdf') { var targetPath = cordova.file.documentsDirectory + "receipt.pdf"; var options = {}; var args = { url: url, targetPath: targetPath, options: options }; windowref.close(); // close window or you get exception document.addEventListener('deviceready', function () { $timeout(function() { downloadReceipt(args); // call the function which will download the file 1s after the window is closed, just in case.. }, 1000); }); } }); 

Создайте функцию, которая будет обрабатывать загрузку файла, а затем откройте его:

 function downloadReceipt(args) { var fileTransfer = new FileTransfer(); var uri = encodeURI(args.url); fileTransfer.download( uri, // file's uri args.targetPath, // where will be saved function(entry) { console.log("download complete: " + entry.toURL()); window.open(entry.toURL(), '_blank', 'location=no,closebuttoncaption=Cerrar,toolbar=yes,enableViewportScale=yes'); }, function(error) { console.log("download error source " + error.source); console.log("download error target " + error.target); console.log("upload error code" + error.code); }, true, args.options ); } 

Проблема, с которой я сейчас сталкиваюсь, – это путь, по которому она загружается, я просто не могу ее открыть. Но ну, по крайней мере, файл теперь загружается. Мне нужно будет создать элемент localStorage для сохранения путей для разных файлов.

На этих шагах многие проверки отсутствуют, это был просто пример, который я сделал быстро, чтобы проверить, работает ли он. Необходимы дальнейшие проверки.

  • iOS / Cordova: InAppBrowser не работает
  • Полоса состояния телефонной трубки перекрывается после того, как inapppbrowser или камера закрыта
  • PhoneGap InAppBrowser: открыть браузер Safari iOS
  • Плагины Cordova работают только в iOS во второй раз, когда он открывается с РЕЗЬБОЙ ПРЕДУПРЕЖДЕНИЕ. Как вы получаете плагины для инициализации onload?
  • InAppBrowser не вызывается в Phonegap 3.1.0
  • Включить загрузку inAppBrowser - Phonegap / Cordova
  • inappbrowser не работает должным образом на iOS
  • Невозможно использовать плагин InAppBrowser для Phonegap 3.1 на iOS 7
  • Открыть ссылку в facebook в браузере или на родном приложении правильно IOS cordova
  • Interesting Posts

    UISwtich запускает другое событие UISwitch в UITableView

    TestFlight Бета-тестирование. Можем ли мы иметь несколько версий одного и того же приложения для разных 1000 внешних тестеров

    Необлученное исключение: этот класс не является ключевым значением, совместимым с кодировкой

    Как сообщить пользователям приложения, что соединения выполняются через SSL?

    Создать треугольник UIView

    Определите, поддерживает ли iOS устройство TouchID без установки пароля

    Ошибка инициализации класса обработки в расширении Swift

    Какое разрешение dpi используется для iPhone App?

    Как открыть конкретную версию Xcode из терминала?

    Нужно ли использовать 2 раскадровки для универсального приложения?

    Пользовательский логин Instagram API iOS

    при развертывании приложения iOS для более старого SDK, как его проверить?

    Событие паузы PhoneGap, размытие текущего экрана, чтобы предотвратить отображение конфиденциальных данных в снимке

    Ожидание анимации WatchKit

    iOS – Как создать категорию с частными методами

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.