2011-04-21 52 views
1

我需要從HTML文件中讀取元素。我從webview加載他們,但我還沒有找到最好的方式來閱讀。以HTML加載的形式閱讀元素webview Android

代碼:CONTENT_HTML

package com.android.webview; 

import android.app.Activity; 
import android.app.AlertDialog; 
import android.app.AlertDialog.Builder; 
import android.content.Context; 
import android.os.Bundle; 
import android.util.Log; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 

public class ViewLink extends Activity { 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    final WebView browser = (WebView)findViewById(R.id.browser); 
    /* JavaScript must be enabled if you want it to work, obviously */ 
    browser.getSettings().setJavaScriptEnabled(true); 

    /* Register a new JavaScript interface called HTMLOUT */ 
    browser.addJavascriptInterface(new MyJavaScriptInterface(), "HTMLOUT"); 

    /* WebViewClient must be set BEFORE calling loadUrl! */ 
    browser.setWebViewClient(new WebViewClient() { 
     @Override 
     public void onPageFinished(WebView view, String url) 
     { 
      /* This call inject JavaScript into the page which just finished loading. */ 
      browser.loadUrl("javascript:window.HTMLOUT.showHTML('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');"); 

      /* 
      read elements in content_html 
      */ 
     } 

    }); 


    browser.loadUrl("http://vnexpress.net/gl/rss/"); 
} 

final Context myApp = this; 
Builder builder; 

String content_html; 

/* An instance of this class will be registered as a JavaScript interface */ 
class MyJavaScriptInterface 
{ 
    @SuppressWarnings("unused") 
    public void showHTML(String html) 
    { 
     builder = new AlertDialog.Builder(myApp); 
      builder.setTitle("HTML") 
      .setMessage(html) 
      .setPositiveButton(android.R.string.ok, null) 
     .setCancelable(false) 
     .create() 
     .show(); 
      content_html = html; 
      Log.i("html", html+" "); 
    } 
} 

回答

1

試試這個對我來說

class MyJavaScriptInterface 
     { 
      @SuppressWarnings("unused") 
      public void showHTML(String html) 
      { 
       System.out.println("Html...."+html); 
      } 
     } 

工作在活動

 browser.getSettings().setJavaScriptEnabled(true); 
     browser.getSettings().setPluginsEnabled(true); 
     browser.getSettings().setSupportZoom(true); 
     browser.getSettings().setBuiltInZoomControls(true); 
     browser.setBackgroundColor(Color.TRANSPARENT); 
     browser.addJavascriptInterface(new MyJavaScriptInterface(), "HTMLOUT"); 
     browser.setWebViewClient(new WebViewClient() { 
     @Override 
     public void onPageFinished(WebView view, String url) 
     { 
      browser.loadUrl("javascript:window.HTMLOUT.showHTML('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');"); 
     } 
     }); 
     browser.loadUrl(link); 
+1

我有以下嘗試和它的作品了。 \t \t \t \t webview.loadUrl(「javascript:alert(document.getElementsByTagName('html')[0] .innerHTML);」); – Miten 2013-08-05 06:58:08