WebViewClient показывает белый экран - PullRequest
2 голосов
/ 27 декабря 2011

Я новичок в разработке приложений для Android. Мне удается показать WebView и загрузить данный URL. Когда я нажимаю на ссылку в WebView, я получаю пустой белый экран.

Когда я использую браузер Chrome на устройстве (Galaxy TAB), он работает. На самом деле я пытаюсь подражать Chrome в моем WebView.

Кто-нибудь знает в чем проблема?

Это WebViewClient, который я использую в моем WebView:

siteView.setWebViewClient(new WebViewClient() {

                @Override
                public boolean shouldOverrideUrlLoading(WebView view, String urlNewString) {

                    siteView.loadUrl(urlNewString);
                    return true;
                }

                @Override
                public void onPageStarted(WebView view, String url, Bitmap favicon) {

                    super.onPageStarted(view, url, favicon);

                    if (dialog == null || !dialog.isShowing()) {

                        if(isFirstTime) {

                            dialog = ProgressDialog.show(MyActivity.this, "", getString(R.string.loadingMessage), true, false);
                            MyActivity.isFirstTime = false;
                        }
                    }
                }

                @Override
                public void onReceivedError(WebView view, int errorCode,
                        String description, String failingUrl) {

                    Toast.makeText(activity, "Oh no! " + description, Toast.LENGTH_SHORT).show();
                }
            });

Ответы [ 3 ]

4 голосов
/ 28 мая 2013

попробуйте siteView.invalidate() перед загрузкой чего-либо в веб-просмотр

3 голосов
/ 28 декабря 2011

Проблема может заключаться в вашей функции shouldOverrideUrlLoading.Вы получаете «view» в качестве параметра, и вы используете «siteView» для загрузки URL.Ваша функция должна выглядеть следующим образом:

public boolean shouldOverrideUrlLoading(WebView view, String urlNewString) {

        view.loadUrl(urlNewString); // you are using siteView here instead of view
        return true;
    } 

Надеюсь, это работает для вас.

1 голос
/ 03 ноября 2016

Убедитесь, что URL начинается с http://. Без http он просто покажет белый экран. Потому что в основном вы будете копировать URL, и он будет начинаться с www.something.com/asdf. Это не будет работать. измените его на http://www.something.com/asdf.

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