Учебник "Здравствуйте, WebView" открывает запрашиваемый адрес в браузере Android, а не в моем веб-просмотре - PullRequest
12 голосов
/ 24 мая 2010

Я использую эмулятор Android с AVD Android 2.1, и у меня возникает следующая проблема: при попытке загрузить URL-адрес в WebView с помощью webView.loadUrl вместо этого он открывается в браузере.

Примечание: я говорю о начальном открытии, , а не , о проблеме, в которой ссылки из WebView открываются в браузере, хотя, возможно, это как-то связано.

Я пробовал несколько вещей:

  • Я удалил <uses-permission android:name="android.permission.INTERNET" /> из манифеста. Это фактически заставило это работать правильно, то есть загрузить HTML в веб-просмотр. Однако, как и следовало ожидать, единственное, что он загрузил, это «ошибка подключения к Интернету».
  • Я отладил проект, чтобы убедиться, что, действительно, при функции loadUrl он открывает браузер Android. CatLog на данный момент таков:

05-23 22: 54: 06.858: INFO / ActivityManager (51): запуск активность: намерение { действовать = android.intent.action.VIEW кот = [android.intent.category.BROWSABLE] Дат = http://m.walla.co.il/ErrorPage.aspx?ReturnUrl=/Default.aspx CMP = com.android.browser / .BrowserActivity }

  • Я попытался загрузить настоящий образец проекта (исходные файлы книги "Hello Android", проект - BrowserView). Однако, это не сработало.
  • Я создал новый проект и следовал указаниям официального руководства Google по использованию WebView и получил тот же результат.

Я не нашел никого, кто бы жаловался на это. Почему это происходит?

Спасибо, Виталий

1 Ответ

25 голосов
/ 24 мая 2010

URL, который вы пытаетесь посетить, вероятно, имеет перенаправление. Перенаправления ведут себя как щелчки ссылок и по умолчанию открываются в браузере. Убедитесь, что посещаемый вами URL-адрес не выполняет перенаправление (например, ответ HTTP 301), или используйте WebViewClient и shouldOverrideUrlLoading(), чтобы перехватить их и перенаправить обратно в WebView.

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