2012-05-22 63 views
4

我試圖帶一部分網站的內容。我決定使用Jsoup,因爲有了它,我可以把你想要的網站的一部分,並在webview中播放這個撤回的HTML部分。這似乎很容易,但我試圖運行我的應用程序,並沒有工作。以下是我的代碼。他究竟怎麼了?Android和Jsoup

注意:如果有另一個更簡單的方法來做到這一點,請通過我提示!但我想實時獲取內容,好嗎? 謝謝大家!

公共類RestauranteUniversitarioActivity延伸活動{

@Override 
public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    WebView cardapio = (WebView)findViewById(R.id.web_engine); 

    cardapio.getSettings().setJavaScriptEnabled(true); 

    String data = ""; 

    Document doc = null; 
    try { 
    doc = Jsoup.connect("http://www.iguatu.ce.gov.br/").get(); 
    } 
    catch (IOException e) { 
    e.printStackTrace(); 
    } 

    Elements content = doc.getElementsByClass("dest-left"); 
    if(content.size() > 0) { 
     data = content.get(1).text(); 
    } 
      cardapio.loadData(data, "text/html", "UTF-8"); 
} 

}

回答

1

參考this thread如果你正在尋找一種替代HTML解析器。

import org.jsoup.Jsoup; 
import org.jsoup.nodes.Document; 
import org.jsoup.nodes.Element; 
import org.jsoup.select.Elements; 

import android.app.Activity; 
import android.os.Bundle; 
import android.webkit.WebView; 

public class HtmlParserActivity extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     WebView cardapio = (WebView) findViewById(R.id.web_engine); 
     cardapio.getSettings().setJavaScriptEnabled(true); 
     String data = ""; 
     Document doc = null; 
     try { 
      doc = Jsoup.connect("https://stackoverflow.com/questions/10695350/androi-and-jsoup").get(); 
      Elements elements = doc.getElementsByClass("post-tag"); 
      for(Element element : elements) { 
       data += element.outerHtml(); 
       data += "<br/>"; 
      } 
      cardapio.loadData(data, "text/html", "UTF-8"); 
     } 
     catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

參考Jsoup Cookbook

+0

來自Alessandro Forcuti:請檢查Jsoup.connect(...)中的網址,並將「androi-」替換爲「android-」 – rghome

2

問題是最有可能是因爲您解析主(UI)線程的網頁。這會鎖定用戶界面/導致您的應用凍結。將doc = Jsoup.connect("http://www.iguatu.ce.gov.br/").get();移動到後臺線程,例如使用AsyncTask(Intent)Service

0

不幸的是,我沒有足夠的評論來回復Dira的評論。 請檢查Jsoup.connect(...)中的網址,並用「android-」替換「androi-」