View-WebView获取url的title
生活随笔
收集整理的這篇文章主要介紹了
View-WebView获取url的title
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
項(xiàng)目中加載一個地址需要顯示網(wǎng)頁的Title
Webview有提供的獲取方法:
webView.setWebChromeClient(new WebChromeClient() {
@Override
public void onReceivedTitle(WebView view, final String title) {
super.onReceivedTitle(view, title);
textTitle = title; Logger.e("onReceivedTitle = "+title); } }); 問題:項(xiàng)目中有好多的微信公眾號的文章,這些url是獲取不到Title的 解決方法: 查看微信公眾號文章的網(wǎng)頁源碼,有個msg_title變量,就是文章的title
這樣就可以通過js和android的交互去獲取該變量的值。 //設(shè)置交互配置 webView.getSettings().setJavaScriptEnabled(true); webView.addJavascriptInterface(new JavaInterface(),"androidObject" ); public class JavaInterface{ @JavascriptInterface public void getTitle(String title){ //獲取到標(biāo)題 } }
webView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(android.webkit.WebView view, String url) { view.loadUrl(url); return true; }
@Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url);
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { view.evaluateJavascript("javascript:window.androidObject.getTitle(msg_title)", new ValueCallback<String>() { @Override public void onReceiveValue(String s) { } }); }else { view.loadUrl("javascript:window.androidObject.getTitle(msg_title)"); }
}
@Override public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) { super.onReceivedError(view, request, error); } });
在js中調(diào)用java的getTitle方法,方法參數(shù)就是js里的標(biāo)題變量msg_title,這樣就可以獲取到標(biāo)題了,這個只是針對微信公眾號里的文章,要是獲取url文章,就需要進(jìn)行webview自帶獲取和微信文章獲取方式兩種相結(jié)合處理。
textTitle = title; Logger.e("onReceivedTitle = "+title); } }); 問題:項(xiàng)目中有好多的微信公眾號的文章,這些url是獲取不到Title的 解決方法: 查看微信公眾號文章的網(wǎng)頁源碼,有個msg_title變量,就是文章的title
這樣就可以通過js和android的交互去獲取該變量的值。 //設(shè)置交互配置 webView.getSettings().setJavaScriptEnabled(true); webView.addJavascriptInterface(new JavaInterface(),"androidObject" ); public class JavaInterface{ @JavascriptInterface public void getTitle(String title){ //獲取到標(biāo)題 } }
webView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(android.webkit.WebView view, String url) { view.loadUrl(url); return true; }
@Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url);
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { view.evaluateJavascript("javascript:window.androidObject.getTitle(msg_title)", new ValueCallback<String>() { @Override public void onReceiveValue(String s) { } }); }else { view.loadUrl("javascript:window.androidObject.getTitle(msg_title)"); }
}
@Override public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) { super.onReceivedError(view, request, error); } });
在js中調(diào)用java的getTitle方法,方法參數(shù)就是js里的標(biāo)題變量msg_title,這樣就可以獲取到標(biāo)題了,這個只是針對微信公眾號里的文章,要是獲取url文章,就需要進(jìn)行webview自帶獲取和微信文章獲取方式兩種相結(jié)合處理。
總結(jié)
以上是生活随笔為你收集整理的View-WebView获取url的title的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sockaddr,sockaddr_in
- 下一篇: 实战:如何优化宝贝标题?