从android WebView访问元数据

从android WebView访问元数据,android,webview,meta-tags,Android,Webview,Meta Tags,如何在Android中访问加载到WebView的HTML页面的元数据 我在stackoverflow.com和google上搜索了几个小时,却找不到任何答案 我只能通过以下代码获取url和标题: webView.getTitle(); webView.getUrl(); 这是不可能的,webview不支持吗?不要在webview中打开URL 首先。打开到URL的HttpURLConnection。读取服务器的输出,您可以扫描服务器响应以查找元数据 当您读取服务器输出时,将数据写入缓冲区,然后使

如何在Android中访问加载到WebView的HTML页面的元数据

我在stackoverflow.com和google上搜索了几个小时,却找不到任何答案

我只能通过以下代码获取url和标题:

webView.getTitle();
webView.getUrl();

这是不可能的,webview不支持吗?

不要在
webview
中打开URL

首先。打开到URL的
HttpURLConnection
。读取服务器的输出,您可以扫描服务器响应以查找元数据


当您读取服务器输出时,将数据写入缓冲区,然后使用
loadData
而不是
loadUrl
WebView

中显示缓冲数据,如果它是您自己的网页,则您可以使用以下代码将元描述或任何文本传递到应用程序:

public class WebAppInterface {

    @JavascriptInterface
    public void setDesc(String desc) {
        mDescription = desc;
    }
}
然后将JS接口添加到WebView:

webView.addJavascriptInterface(new WebAppInterface(), "Android");
最后,在网页中添加以下代码:

<script type="text/javascript">    
    Android.setDesc("Your meta tag desc here");
</script>

setDesc(“你的meta标签desc在此”);

阅读更多信息,请访问

您可以通过以下简单方法解决问题:

private class JsInterface {
    @JavascriptInterface
    @SuppressWarnings("unused")
    public void processHTML(String content) {
    //handle content
    }
}


mWebView.addJavascriptInterface(new JsInterface(), "CC_FUND");

mWebView.setWebViewClient(new WebViewClient() {
    @Override
    public void onPageFinished(WebView view, String url) {
        mWebView.loadUrl("javascript:window.CC_FUND.processHTML( (function (){var metas = document.getElementsByTagName('meta'); \n" +
                "\n" +
                "   for (var i=0; i<metas.length; i++) { \n" +
                "      if (metas[i].getAttribute(\"name\") == \"description\") { \n" +
                "         return metas[i].getAttribute(\"content\"); \n" +
                "      } \n" +
                "   } \n" +
                "\n" +
                "    return \"\";})() );");
        super.onPageFinished(view, url);
    }
}
私有类接口{
@JavascriptInterface
@抑制警告(“未使用”)
public void processHTML(字符串内容){
//处理内容
}
}
addJavascriptInterface(新的JsInterface(),“CC_基金”);
setWebViewClient(新的WebViewClient()){
@凌驾
公共void onPageFinished(WebView视图,字符串url){
mWebView.loadUrl(“javascript:window.CC_FUND.processHTML((函数(){var metas=document.getElementsByTagName('meta');\n”+
“\n”+

“对于(var i=0;i)您到底想要获取/查看哪种数据?@Aman Grover例如description meta tag