Я загрузил внешний URL в моем WebView
. Теперь то, в чем я нуждаюсь, - то, что, когда пользователь нажимает на ссылки на загруженной странице, она должна работать как нормальный браузер и открыть ссылку в том же WebView
. Но это открывает браузер по умолчанию и загружает страницу там?
Я включил JavaScript. Но тем не менее это не работает. Я забыл что-то?
Если вы используете 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;
}
}
в в некоторых случаях вам может потребоваться переопределение 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);
}
}