Dav*_*ern 8 javascript android download cordova
我正在尝试使用Cordova应用程序下载文件,这对于使用文件传输插件的较小文件工作正常,但对于较大的文件我想触发android下载管理器.这可能(可能带插件)吗?
我需要能够更改请求的标题,因此'cordova插件后台下载' 插件对我没有帮助.
编辑:我已经修复了我的问题,没有使用Android下载管理器.由于我的应用程序将传输的大多数文件都<50mb,因此触发DM并非绝对必要.由于不是我的赏金,这个问题引起了很多关注.虽然我仍然想要一个好的答案,但我没有太多时间来测试答案.
最好的方法是编写自己的插件.编写Cordova插件很简单,只需遵循官方文档即可.我们做了同样的事情,因为还有必要定制下载过程.它看起来像使用此方法的本机调用,因为它激活本机DM,因此用户可以看到进度,取消它,暂停等.
一旦你注册了自己的插件,这是你可以用来开始的代码:
import android.app.DownloadManager;
import android.app.DownloadManager.Request;
public class DownloadPlugin extends CordovaPlugin{
private DownloadManager downloadManager;
public DownloadPlugin() {
downloadManager = (DownloadManager) webView.getContext()
.getSystemService(webView.getContext().DOWNLOAD_SERVICE);
}
@Override
public boolean execute(String action, JSONArray args,
CallbackContext callbackContext) throws JSONException {
String downloadUrl = args.getString(0);
startDownloadForUrl(String downloadUrl);
}
public void startDownloadForUrl(String downloadUrl){
Request downloadRequest = new Request(downloadUrl);
if (accessToken != null) { // we use oauth so this is example of changing download request
downloadRequest.addRequestHeader("Authorization", "Bearer "
+ accessToken);
}
downloadRequest
.setDescription("description")
.setDestinationInExternalFilesDir("folderName", "fileName");
downloadManager.enqueue(downloadRequest);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1298 次 |
| 最近记录: |