Объявление открывается в WebView приложения вместо браузера по умолчанию при нажатии [дубликат]

Верхний ответ spektom работает идеально.

Если вы пишете AsyncTask inline и не распространяетесь как класс, и, кроме того, если есть необходимо получить ответ из AsyncTask, можно использовать метод get(), как показано ниже.

RSSFeed feed = new RetreiveFeedTask().execute(urlToRssFeed).get();

(Из его примера.)

2
задан Dairo 18 March 2014 в 13:53
поделиться

2 ответа

Ваш код должен быть:

@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

1
ответ дан Gaunt Face 28 August 2018 в 18:34
поделиться

Я сделал некоторые изменения, и он отлично работает для баннеров. Я сделал следующие изменения:

  • изменено, если условие.
  • Я возвращаю false для блока «if», поскольку документация говорит:

Если предоставлен WebViewClient, верните значение true, это означает, что приложение-хозяин обрабатывает URL-адрес, а return false означает, что текущий WebView обрабатывает URL-адрес

@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;
    }
}
1
ответ дан M.J 28 August 2018 в 18:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: