1. 程式人生 > 程式設計 >android webview獲取html程式碼和根據id獲取value例項

android webview獲取html程式碼和根據id獲取value例項

1 前言

最近做一個專案,需要webview獲取網頁中input的內容,把知識整理一下,做個記錄,也希望對大家有所幫助。

2 獲取html內容

2.1 初始化webview

webview.getSettings().setJavaScriptEnabled(true);
webview.addJavascriptInterface(new InJavaScriptLocalObj(),"java_obj");
/**
  *注意,@JavascriptInterface方法的註解是一定要加的,
  *很多同學因為沒加所以沒有效果
  */
 final class InJavaScriptLocalObj {
  @JavascriptInterface
  public void getSource(String html) {
   Log.d("html=",html);
  }
 }

2.2 獲取html程式碼

view.loadUrl("javascript:window.java_obj.getSource('<head>'+" +
     "document.getElementsByTagName('html')[0].innerHTML+'</head>');");

當執行這句話的時候,會回撥InJavaScriptLocalObj 中的getSource方法。

3 根據id獲取value

可能會有這樣一個需求:在網頁的文字框中輸入內容後,要在android中獲取文字框的輸入內容。那麼這個文字框需要設定一個id,我們用javascript程式碼來獲取value。程式碼如下:

3.1 初始化webview

這一塊的程式碼和上面是一樣的

webview.getSettings().setJavaScriptEnabled(true);
webview.addJavascriptInterface(new InJavaScriptLocalObj(),"local_obj");

 public final class InJavaScriptLocalObj {
  private String value = "";
  public String getValue(){
   return this.value;
  }
  @JavascriptInterface
  public void getValueById(String value) {
   Log.d("HTML",value);
   this.value = value;
  }
 }

3.2 根據id獲取value

detail_web.loadUrl("javascript:window.local_obj.getValueById(document.getElementById('acount_comment').value);");

4 結尾

好了就講到這裡吧,以上這篇android webview獲取html程式碼和根據id獲取value例項就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。