应用开发中需要获取WebView当前页面的标题、可能通过对WebChromeClient.onReceivedTitle()方法的重写来实现、但是WebChromeClient也只有这个方法可以获取网页的title内容、没有其他获取内容的方法了、比如获取meta信息等、就需要使用js获取、然后和js交互来获得、也可以采用直接解析html的meta节点的方式.
为了方便大家理解、我把整个coCreate()里面的代码贴出来、供大家参考、另外得自己添加WebViewClient、尽量不要用系统默认的WebViewClient来加载url
//mWebview.setWebChromeClient(new WebChromeClient());
WebChromeClient wvcc = new WebChromeClient() {
@Override
public void onReceivedTitle(WebView view, String title) {
super.onReceivedTitle(view, title);
Log.d("ANDROID_LAB", "TITLE=" title);
//title就是网页的title
//txtTitle.setText("ReceivedTitle:" title);
}
};
// 设置setWebChromeClient对象
mWebview.setWebChromeClient(wvcc);
完整代码事例
public class MainActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_layout);
final WebView webView = (WebView)findViewById(R.id.my_webview);
WebChromeClient wvcc = new WebChromeClient() {
@Override
public void onReceivedTitle(WebView view, String title) {
super.onReceivedTitle(view, title);
Log.d("ANDROID_LAB", "TITLE=" title);
//title 就是网页的title
}
};
// 设置setWebChromeClient对象
webView.setWebChromeClient(wvcc);
//此处省略N行代码
webView.loadUrl(url);
}
}