如題,在Android中WebView獲取網頁中標題 ,內容, 圖片的方法
首先是獲取標題,在new WebChromeClient(){}中重寫onReceivedTitle()方法
@Override public void onReceivedTitle(WebView view, String title) { super.onReceivedTitle(view, title); // loge.e("__頁面標題__"+title); }
2016-5-11注:看別的項目看到的,也可以在
onProgressChanged(WebView view, int newProgress)
方法里直接獲取網頁標題
view.getTitle()
獲取內容,是參考的這邊的
http://blog.csdn.net/hellohaifei/article/details/9331631
首先是除了最基本的那些再多添加一堆設置
WebSettings settings = mWebview.getSettings(); mWebview.addJavascriptInterface(new InJavaScriptLocalObj(), "local_obj"); settings.setSupportZoom(true); settings.setDomStorageEnabled(true); mWebview.requestFocus(); settings.setSupportZoom(true); settings.setBuiltInZoomControls(true);
然后是寫個類
public final class InJavaScriptLocalObj { @JavascriptInterface public void showSource(String html) { Log.e("", "______"+html+"____"); } }
最后是在new WebViewClient(){}的onPageFinished()方法里加上調用js方法
@Override public void onPageFinished(WebView view, String url) { // TODO Auto-generated method stub super.onPageFinished(view, url); /**這個是為了加載網頁內容*/ view.loadUrl("javascript:window.local_obj.showSource(document.getElementsByTagName('article')[0].innerText);"); }
這個方法語句和參考的網頁有點不一樣,那個是打印全部的信息,包括一些標簽,而這個只是打印網頁純文本內容.
后來因為產品要求,分享不帶內容,分享說明直接按微信來,放網址,不過圖片要放第一張圖,所以,就得把上面的句子改一下了
/**這個是加載網頁首圖的*/ view.loadUrl("javascript:window.local_obj.showSource(document.getElementsByTagName('img')[0].src);");
兩個都需要就得另外寫了,具體不知道
因為代碼有混淆,所以需要在proguard-project.txt里說明
#webview與js交互需注意 #保留annotation, 例如 @javascriptInterface 等 annotation -keepattributes *Annotation* #保留跟 javascript相關的屬性 -keepattributes JavascriptInterface #保留JavascriptInterface中的方法 -keepclassmembers class * { @android.webkit.JavascriptInterface <methods>; } #這個根據自己的project來設置,這個類用來與js交互,所以這個類中的 字段 ,方法, 等盡量保持 -keepclassmembers public class com.tugouzhong.activity.WebviewActivity{ <fields>; <methods>; public *; } #這個類 必須保留,這個類在WVJBWebViewClient中傳遞數據,如果被混淆 會導致一些callback無法調用 -keep class com.packgename.custom.WVJBWebViewClient$WVJBMessage #類中成員的變量名也不能混淆,這些變量名被作為json中的字段,不能改變。 -keepclassmembers class com.tugouzhong.activity.WebviewActivity$InJavaScriptLocalObj{ <fields>; }
網上找到,測了沒問題,先湊合用
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。