Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 网络视图&x2B;Blob URL+;下载图像_Android_Image_Webview_Download_Bloburls - Fatal编程技术网

Android 网络视图&x2B;Blob URL+;下载图像

Android 网络视图&x2B;Blob URL+;下载图像,android,image,webview,download,bloburls,Android,Image,Webview,Download,Bloburls,过了很长一段时间,我习惯了WebView。那么让我问一下,我有一个阶段问题 -我用谷歌搜索了blobURL,但我没有找到解决方案或任何提示,所以我不得不在这里发布问题 -我在android端有WebView来加载网站。在其打开按钮上单击“另存为”下载图像 -现在,当我在谷歌Chrome应用程序上试用它时是的,它的工作正常很好,并且可以正常下载 -现在,在我的应用程序DownloadListener 我得到了一个类似于 水滴: 所以downloadmanger什么也不下载 检查我的代码 webvi

过了很长一段时间,我习惯了WebView。那么让我问一下,我有一个阶段问题

-我用谷歌搜索了
blobURL
,但我没有找到解决方案或任何提示,所以我不得不在这里发布问题

-我在android端有
WebView
来加载网站。在其打开按钮上单击“另存为”下载图像

-现在,当我在
谷歌Chrome应用程序上试用它时
是的,它的
工作正常
很好
,并且可以正常下载

-现在,在我的应用程序
DownloadListener
我得到了一个类似于

水滴:

所以downloadmanger
什么也不下载

检查我的代码

webview = (WebView) findViewById(R.id.webview);


WebSettings settings = webview.getSettings();
settings.setJavaScriptCanOpenWindowsAutomatically(true);
settings.setJavaScriptEnabled(true);
webview.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);

final AlertDialog alertDialog = new AlertDialog.Builder(this).create();

final ProgressDialog progressBar = ProgressDialog.show(this, "WebView Example", "Loading...");

webview.setWebViewClient(new WebViewClient() {
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        Log.i(TAG, "Processing webview url click...");
        view.loadUrl(url);
        return true;
    }

    public void onPageFinished(WebView view, String url) {
        Log.i(TAG, "Finished loading URL: " + url);
        if (progressBar.isShowing()) {
            progressBar.dismiss();
        }
    }

    public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
        Log.e(TAG, "Error: " + description);

    }
});

webview.setDownloadListener(new DownloadListener() {
    public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) {

        Uri webpage = Uri.parse(url);

        if (!url.startsWith("http://") && !url.startsWith("https://")) {
            webpage = Uri.parse("http://" + url);
        }

        DownloadManager.Request request = new DownloadManager.Request(
                webpage);


        request.setMimeType(mimetype);


        String cookies = CookieManager.getInstance().getCookie(url);


        request.addRequestHeader("cookie", cookies);


        request.addRequestHeader("User-Agent", userAgent);


        request.setDescription("Downloading file...");


        request.setTitle(URLUtil.guessFileName(url, contentDisposition,
                mimetype));


        request.allowScanningByMediaScanner();


        request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
        request.setDestinationInExternalFilesDir(Main2Activity.this,
                Environment.DIRECTORY_DOWNLOADS,".pdf");
        DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
        dm.enqueue(request);
        Toast.makeText(getApplicationContext(), "Downloading File",
                Toast.LENGTH_LONG).show();
    }
});
Q1-有人能建议如何从Blob URL下载文件吗?
Q2-必须在服务器端更改吗?
Q3-是否有其他方式代替下载管理器

编辑 我试过
.pdf/.png/.jpeg
,但是
运气不好
;(


我也在做同样的噩梦。我所做的是将Blob URL数据转换为Base64字符串,并用这个字符串创建了一个“.pdf”文件。查看我的。

你是否下载了文件?阅读blob是否成功?嗨,凯文…请在代码段更新你的答案..查看我的答案..以匹配..查看我的SO答案..以避免有人要求你发布代码..并在末尾添加一个点;p
setDestinationInExternalFilesDir(Main2Activity.this,
                Environment.DIRECTORY_DOWNLOADS,".pdf");