Нажатие на URL открывает браузер по умолчанию

Я загрузил внешний URL в моем WebView. Теперь то, в чем я нуждаюсь, - то, что, когда пользователь нажимает на ссылки на загруженной странице, она должна работать как нормальный браузер и открыть ссылку в том же WebView. Но это открывает браузер по умолчанию и загружает страницу там?

Я включил JavaScript. Но тем не менее это не работает. Я забыл что-то?

206
задан Jonathan Soifer 21 May 2016 в 03:35
поделиться

2 ответа

Если вы используете WebView , вам придется перехватывать клики самостоятельно, если вы не хотите использовать Android по умолчанию. .

Вы можете отслеживать события в WebView , используя WebViewClient . Вам нужен метод shouldOverrideUrlLoading () . Это позволяет вам выполнять свои собственные действия при выборе определенного URL-адреса.

Вы устанавливаете WebViewClient своего WebView с помощью метода setWebViewClient () .

Если вы посмотрите на пример WebView в SDK , там есть пример, который делает именно то, что вы хотите. Это очень просто:

private class HelloWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }
}
347
ответ дан 23 November 2019 в 04:49
поделиться

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

@Override
public void onLoadResource(WebView view, String url)
{
    if (url.equals("http://redirectexample.com"))
    {
        //do your own thing here
    }
    else
    {
        super.onLoadResource(view, url);
    }           
}
54
ответ дан 23 November 2019 в 04:49
поделиться
Другие вопросы по тегам:

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