Верхний ответ spektom работает идеально.
Если вы пишете AsyncTask
inline и не распространяетесь как класс, и, кроме того, если есть необходимо получить ответ из AsyncTask
, можно использовать метод get()
, как показано ниже.
RSSFeed feed = new RetreiveFeedTask().execute(urlToRssFeed).get();
(Из его примера.)
Ваш код должен быть:
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (Uri.parse(url).getHost().equals("www.mysite.com")) {
return true;
}else{
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
return false;
}
}
Все, что я изменил, было:
1.) Возвращая true, загружает URL-адрес в веб-просмотр, нет необходимости в view.loadUrl ()
2.) Возвратите false, когда вы передаете намерение ACTION_VIEW
Я сделал некоторые изменения, и он отлично работает для баннеров. Я сделал следующие изменения:
Если предоставлен WebViewClient, верните значение true, это означает, что приложение-хозяин обрабатывает URL-адрес, а return false означает, что текущий WebView обрабатывает URL-адрес
blockquote>@Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if (url.contains("www.mysite.com")) { view.loadUrl(url); return false; }else { Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); startActivity(intent); return true; } }