Android-检测URL MIME类型?

Jak*_*son 5 url android webview mime-types

在我的Android应用中,我具有从数据库访问的各种URL,然后打开一个WebView来显示该URL。通常,URL看起来像这样:

http://www.mysite.com/referral.php?id=12345
Run Code Online (Sandbox Code Playgroud)

这些引荐链接总是重定向/转发到另一个URL。有时,生成的URL直接指向图像。有时是PDF。有时是到另一个HTML页面。

无论如何,我需要能够区分这些不同类型的页面。例如,如果生成的URL链接到PDF文件,则我想使用Google Docs Viewer技巧来显示它。如果只是一个普通的HTML页面,我只想显示它,如果它是图像,则打算下载图像并以某种方式在我的应用程序中显示它。

我认为解决此问题的最佳方法是确定生成的url的mime类型。你怎么做到这一点?有更好的方法来完成我想要的吗?

Yaz*_*006 5

您可以通过以下方式找出内容的哑剧类型:

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

        //here you getting the String mimetype
        //and you can do with it whatever you want
    }
});
Run Code Online (Sandbox Code Playgroud)

在这种方法中,您可以检查mimetype是否为pdf,并使用修改后的网址通过WebView中的Google Docs显示它:

String pdfPrefixUrl = "https://docs.google.com/gview?embedded=true&url="

if ("application/pdf".equals(mimetype)) {
     String newUrl = pdfPrefixUrl + url;
     webView.loadUrl(newUrl);
}    
Run Code Online (Sandbox Code Playgroud)

希望对您有所帮助!


Mat*_*usz -2

我认为内容类型 http 标头应该可以解决问题:

内容类型