我已经使用 phonegap 下载方法成功下载了一个文件。我正在将文件下载到我的安卓手机上下载文件夹中的本地存储。我想从下载管理器中收到文件已下载的某种通知,然后单击下载以查看。这就是 phonegap 下载方法所缺乏的。
phonegap 是否可以访问 Android DownloadManager 类?
我已经使用 phonegap 下载方法成功下载了一个文件。我正在将文件下载到我的安卓手机上下载文件夹中的本地存储。我想从下载管理器中收到文件已下载的某种通知,然后单击下载以查看。这就是 phonegap 下载方法所缺乏的。
phonegap 是否可以访问 Android DownloadManager 类?
使用此插件访问 android DownloadManager
https://github.com/sgrebnov/cordova-plugin-background-download
我在我的科尔多瓦应用程序中使用它,它工作正常。
可能需要在 java 代码中进行一些自定义才能完美运行。
你肯定需要一个插件来从 phonegap 访问 android 的本机代码。
看看这个网站:https ://github.com/phonegap/phonegap-plugins/tree/master/Android
它充满了插件。其中之一称为“下载器”。也许这就是你正在寻找的。
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();