如何访问加载到Android中的WebView的HTML页面的元数据?
我搜索了几个小时的stackoverflow.com和google,而我没有找到任何答案。
我只能通过此代码获取网址和标题:
webView.getTitle();
webView.getUrl();
剂量是不可能的,webview不支持它?
答案 0 :(得分:2)
不要在WebView
。
首先。打开网址HttpURLConnection
。从服务器读取输出,您可以浏览服务器响应以查找元数据。
在阅读服务器输出时,将数据写入缓冲区,然后使用loadData
代替loadUrl
来显示WebView
答案 1 :(得分:1)
您可以通过这种简单的方法解决问题:
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);
}
}
答案 2 :(得分:0)
如果是您自己的网页,那么您可以使用以下代码将元描述或任何文字传递到您的应用:
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>
了解详情