【问题标题】:DownloadListener doesn't download images?DownloadListener 不下载图片?
【发布时间】:2013-04-01 15:15:29
【问题描述】:

在我的 Android 应用程序中,我使用的是带有 downloadListener 的 WebView。我想访问一个 Intranet 站点,当单击一个链接时,使用 mimetype 信息决定如何处理该文件。

问题在于引用图像文件(png、jpg 等)的链接。它们不会触发侦听器,而是在新页面中自动显示文件,跳过侦听器。

如何改变这种行为?

我的代码没什么特别的...

@Override
protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    webview = (WebView)findViewById(R.id.webview);
    webview.setWebViewClient(new MiWebClient());
    webview.setDownloadListener(oyenteDescarga);

    //...other onCreate stuff... nothing relevant
}

DownloadListener oyenteDescarga = new DownloadListener()
{
    @Override
    public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) 
    {
      //...I want to use mimetype here, but this listener is not triggered when I click an image, an example:
      Toast.makeText(getBaseContext(), "URL:" + url, Toast.LENGTH_SHORT).show(); //it doesn't show when i click a link referencing an image
    }
};

MiWebClient 是一个扩展 WebViewClient 的类

public class MiWebClient extends WebViewClient
{
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) 
    {
        view.loadUrl(url);
        return true;
    }
}

【问题讨论】:

    标签: android download android-webview listener


    【解决方案1】:

    基于documentation

    注册内容无法处理时使用的接口 渲染引擎,应改为下载。这会 替换当前处理程序。

    由于图像可以由渲染引擎处理,它不会下载它,因此不会调用下载管理器。

    【讨论】:

    • 哎呀!这很糟糕......哦,我应该使用 B 计划......谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-11
    • 1970-01-01
    • 2014-02-27
    • 2011-04-08
    • 1970-01-01
    • 2019-01-31
    • 2016-02-25
    相关资源
    最近更新 更多