处理WebView文件下载和运行时权限

时间:2016-12-21 22:09:03

标签: android webview download

当我点击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启动后请求权限不是一个选项,因为您可以做的不仅仅是下载文件。

0 个答案:

没有答案