2012-07-04 4 views
9

У меня есть приложение для Android, в котором есть WebView, и я бы хотел отображать на нем не веб-страницу, а только div с этой веб-страницы. Я должен упомянуть, что у меня нет доступа к этой странице.Загрузите div в веб-представление на Android

Спасибо!

+0

Есть любые ответы, которые не включают, «используйте эту библиотеку»? Кажется, такой перебор, чтобы импортировать целую библиотеку, чтобы сделать одну небольшую часть обрезки. –

ответ

14

Я бы порекомендовал Jsoup. Он больше, чем tagoup, но обеспечивает встроенную функциональность, чтобы вытащить HTML из URL-адреса и очень проста в использовании. Например, если вы хотите, чтобы вытащить div с идентификатором example вы могли бы сделать следующее:

Document doc = Jsoup.connect(url).get(); 
Elements ele = doc.select("div#example"); 

Затем, чтобы загрузить HTML вы распаковали в вашем веб-просмотра вы могли бы сделать:

String html = ele.toString(); 
String mime = "text/html"; 
String encoding = "utf-8"; 
webView.loadData(html, mime, encoding); 
+0

это работает, я получаю html, но я получаю веб-страницу не доступной в webview – maephisto

+0

Я не могу дать вам много информации без дополнительной информации. Если вы получаете HTML, то это, вероятно, действительный URL. Вы уверены, что выполняете 'loadData()', а не 'loadUrl()', и попытались ли вы вывести HTML-код, чтобы увидеть, что это такое? – alexgophermix

+0

Мне удалось заставить его работать после использования loadDataWithBaseURL. Благодаря! – maephisto

2

Вам необходимо загрузить HTML-страницу самостоятельно, извлечь содержимое div и передать его в WebView в виде строки. Для этого вам может понадобиться библиотека парсера HTML (например, tagsoup).

+0

Спасибо! не могли бы вы привести пример такого подхода? – maephisto

Смежные вопросы