当我点击WebView
中的某个按钮时,它应该下载一个PDF文件,该文件将保存到外部存储器中。
为此,我设置了DownloadListener
:
webview.setDownloadListener(new DownloadHandler());
public class DownloadHandler implements DownloadListener {
@Override
public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) {
DownloadManager.Request request = new DownloadManager.Request(
Uri.parse(url));
request.allowScanningByMediaScanner();
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, getFileName(url));
DownloadManager dm = (DownloadManager)getContext().getSystemService(getContext().DOWNLOAD_SERVICE);
dm.enqueue(request);
}
}
尝试在Android M上执行此操作时会出现问题,在运行时会询问所有权限。
在启动下载之前,我应该如何首先请求权限,并根据是否获得授权继续或不继续下载?
下载网址调用shouldInterceptRequest
而非shouldOverrideUrlLoading
,因此我甚至不确定如何取消先检查权限的请求。
WebView
启动后请求权限不是一个选项,因为您可以做的不仅仅是下载文件。