Открытие WebView в фоновом режиме - PullRequest
6 голосов
/ 22 августа 2011

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

У нас есть клиент, который хочет, чтобы мы заходили на его серверы с помощью собственного приложения для Android, но без предоставления нам специального способа сделать это. Они хотят, чтобы мы использовали текущий веб-сайт, который они должны регистрировать, и после аутентификации извлекаем в браузере XML, который содержит необходимые нам данные. После этого используйте данные в родном приложении. Все это с пользователем, не знающим / не видящим, что браузер используется. Полный беспорядок ИМХО.

Конечно, я никогда не пробовал этот подход в прошлом, и мои первые тесты заставляют меня чувствовать, что это невозможно (или чрезвычайно сложно) достичь. Всякий раз, когда я пытаюсь загрузить URL в скрытом WebView, появляется браузер по умолчанию, показывающий веб-сайт.

Мой главный вопрос: можно ли загрузить веб-представление и работать с ним (вызывать javascript и т. Д.) В фоновом режиме?

Спасибо.

Ответы [ 2 ]

7 голосов
/ 22 августа 2011

Вы можете установить веб-видение на скрытое по умолчанию с атрибутом android: visibility = "ушел", взаимодействовать с ним во время выполнения, а затем, когда вам необходимо показать его пользователю после загрузки данных, просто вызовите setVisibility (View .Visible)

Надеюсь, это поможет!

1 голос
/ 22 августа 2011

Ofc, вы должны использовать тему:

protected void getPage(){
    Thread th = new Thread(){

        public void run(){

            //Download and make things



            mActivity.runOnUiThread(new Runnable() {

                @Override
                public void run() {
                    //print int the activity

                }
            });
        }
    };

    th.start();

Помните, и это ОЧЕНЬ важно, вы НЕ МОЖЕТЕ рисовать из потока в основной вид деятельности. Единственный, кто может рисовать на экране, является основным видом деятельности. Вы можете рисовать двумя способами:

One, с методом _mActivity. runOnUiThread (new Runnable () {_ как в примере, который я привел. Во-вторых, используйте обработчик для отправки сообщений из потока в основное действие с информацией, которую вы хотите нарисовать.

* Основным действием является действие, которое отображается на экране в данный момент, а не первое действие приложения

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