Как загрузить веб-страницу в Android, но обернуть ее в вид, чтобы ее можно было просматривать по-другому? - PullRequest
0 голосов
/ 25 февраля 2012

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

Для этого потребуется два основных компонента:

  • Возможность буферизовать веб-страницу, но не отображать ее, и
  • Возможность получать элементы из буферизованной веб-страницы по определенному свойству

Я понимаю, что мой вопрос немного общий, но цель достаточно конкретная, чтобы получить простой ответ. Как мне буферизовать веб-страницу без ее отображения и как получить определенные элементы с этой буферизованной веб-страницы?

Спасибо!

Ответы [ 3 ]

0 голосов
/ 25 февраля 2012

Есть несколько способов получить данные из URL-адреса в Android, но суть в том, что HttpURLConnection, вероятно, сделает то, что вам нужно, без отображения страницы.

Вы можете получить элементы со страницы, используя JSoup.Вы можете искать в StackOverflow вопросы и ответы на них.Вот один из таких примеров: Пример Android JSoup .

0 голосов
/ 25 февраля 2012

Просто несколько мыслей по поводу ваших двух вопросов:

Загрузка веб-страницы в Android достаточно проста (с помощью WebView), но, судя по ее звукам, вам понадобится источник страницы, чтобы получить конкретную информациюэлементы.Теперь есть два способа интерпретировать это: вы либо хотите получить определенные данные с веб-страницы и представить их в собственных представлениях (например, TextView), либо вы ищете способ манипулировать исходным кодом и скрывать / показывать определенные элементы.

И то, и другое сводится к одному: вам нужно будет иметь доступ к источнику удобным способом и получать данные из него или манипулировать им.Следовательно, вы, вероятно, захотите использовать какой-нибудь HTML-парсер, например, JSoup, HTMLCleaner и т. Д. (Их там целая куча).Эти библиотеки обычно предлагают загрузку как локальных, так и удаленных страниц, поэтому, вероятно, нет необходимости сначала вручную захватывать источник.

Что касается моего опыта работы с этими библиотеками, то все они в основном используют своего рода деревопутешественник / обходчик, чтобы перебрать иерархию элементов HTML - структуру документа - но также предоставить удобные методы для поиска элементов по идентификатору, тегу, имени и т. д. Таким образом, вы сможете получать данные из определенных элементов или даже манипулироватьисходная страница, чтобы показать / скрыть то, что вы хотите, чтобы пользователь увидел в конце.

0 голосов
/ 25 февраля 2012

Вы можете использовать HttpURLConnection, можете анализировать поток:

    HttpURLConnection urlConnection = null;
    URL url = new URL(urlString);

    urlConnection = (HttpURLConnection) url.openConnection();
    urlConnection.setReadTimeout(15000);
    urlConnection.setConnectTimeout(15000);
    urlConnection.setUseCaches(false);
    urlConnection.setDefaultUseCaches(false);

    urlConnection.setRequestMethod("GET");

    urlConnection.setDoOutput(true);
    urlConnection.setDoInput(true);

    urlConnection.connect();


    inpStream = urlConnection.getInputStream();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...