Android: веб-просмотр - PullRequest
       4

Android: веб-просмотр

0 голосов
/ 29 сентября 2011

Я пытаюсь обернуть веб-приложение, скажем, www.xyz.com, в веб-просмотр с использованием shouldOverrideUrlLoading.У меня есть два действия, одно из которых запускает приложение, оно проверяет все запущенные действия и определяет, запускать ли новый экземпляр или нет, и другое действие, которое оборачивает мое приложение www.xyz.com в веб-просмотр.

Ясталкиваются с двумя проблемами:

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

  2. Также, когда ссылка в веб-приложении, открывающая другой сайт, например, www.abc.com, не работает нормально, она работает дляв первый раз и открывает сайт во внешнем браузере по желанию, однако при дальнейшем нажатии пытается открыть сайт в веб-просмотре, что нежелательно.

Я нашел это в Google и нашел предложение вродекод ниже:

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
  if (url.contains("abc")) {
    Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); 
    startActivity(i);
    return true;
  } else {
    view.loadUrl(url);
    return false;
  }
}

Однако в моем случае впервые сайт www.abc.com открывается во внешнем браузере, ново второй раз, когда он открывается в веб-представлении, я отлаживал его в eclipse и обнаружил, что значение url совпадает с последующим кликом.

Ответы [ 2 ]

0 голосов
/ 28 октября 2015

1) Для решения проблемы перезапуска WebView вам необходимо добавить следующие строки кода в вашу деятельность, которая содержит WebView

android:launchMode="singleInstance"
android:alwaysRetainTaskState="true"

Также см. Учебные пособия о том, как сохранить состояние WebView в Bundle.

2) Если у вас проблема с внешним браузером, попробуйте

url.equals("www.abc.com")

вместо

url.contains("abc")

Надеюсь, что решит вашу проблему:)

0 голосов
/ 05 декабря 2011

Опубликовал ответ с кодом, который работал для меня в этом похожем вопросе: Android: нажмите ссылку на странице в веб-представлении

Сводка : shouldOverrideUrlLoading () кажется ошибочным, лучше использовать onPageStarted ().

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