Есть ли у phonegap доступ к классу Android DownloadManager?

Я успешно загрузил файл, используя метод загрузки по телефону. Я загружаю файл в локальное хранилище в папке «Загрузки» на своем телефоне Android. Я хотел бы получить какое-то уведомление от диспетчера загрузок о том, что файл был загружен, а затем нажать на загрузку для просмотра. Это то, чего не хватает методу загрузки телефона.

Есть ли у phonegap доступ к классу Android DownloadManager?


person squistbe    schedule 25.09.2012    source источник


Ответы (3)


Вам определенно нужен плагин для доступа к собственному коду Android из phonegap.

Взгляните на этот сайт: https://github.com/phonegap/phonegap-plugins/tree/master/Android

Она заполнена плагинами. Один из них называется «загрузчик». Может быть, это то, что вы ищете.

person SunnySonic    schedule 26.09.2012

Плагин для Android-загрузчика работает отлично. Однако, если вы работаете на Cordova 2.0, вам нужно будет изменить код для добавления конструктора. Текущий код:

...

PhoneGap.addConstructor(function() {
    PhoneGap.addPlugin("downloader", new Downloader());
    PluginManager.addService("Downloader", "com.phonegap.plugins.downloader.Downloader");
});

Поскольку addPlugin больше не работает на Cordova 2.0, вам нужно будет удалить метод addConstructor и заменить его на:

window.downloader = new Downloader();

И в методе exec должно выглядеть так:

cordova.exec(win, fail, "Downloader", "downloadFile", [fileUrl, params]);

Вместо использования объекта Phonegap. После того, как я все это сделал, плагин заработал. Весь js должен выглядеть так:

function Downloader() {}

Downloader.prototype.downloadFile = function(fileUrl, params, win, fail) {

    //Make params hash optional.
    if (!fail) win = params;
cordova.exec(win, fail, "Downloader", "downloadFile", [fileUrl, params]);
};

window.downloader = new Downloader();
person squistbe    schedule 28.09.2012

используйте этот плагин для доступа к Android DownloadManager

https://github.com/sgrebnov/cordova-plugin-background-download

я использую его в своем приложении Cordova, и он отлично работает.

возможно, потребуется некоторая настройка в коде Java для идеальной работы.

person Siroos Asadi    schedule 12.02.2015