Arulx Ответ Z был именно тем, что я искал.
Я пишу приложение с навигационным ящиком с recyclerview и веб-просмотрами, чтобы поддерживать просмотр веб-страниц внутри приложения, независимо от того, нажали ли гиперссылки (таким образом, не запуская внешний веб-браузер). Для этого будет достаточно, чтобы поставить следующие 2 строки кода:
mWebView.setWebChromeClient(new WebChromeClient()); mWebView.setWebViewClient(new WebViewClient());
точно под WebView заявление.
Вот пример моего реализованного кода WebView:
public class WebView1 extends AppCompatActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView wv = (WebView) findViewById(R.id.wv1); //webview statement
wv.setWebViewClient(new WebViewClient()); //the lines of code added
wv.setWebChromeClient(new WebChromeClient()); //same as above
wv.loadUrl("http://www.google.com");
}}
таким образом, каждое звено нажал на веб-сайте будет загружаться внутри WebView. (Использование Android Studio 1.2.2 с все SDK обновляется)
Похоже, это поведение по умолчанию для 'WebViewClient' и не нуждается в подклассы, если это все, что вы делаете. Я получил это для работы, просто выполнив 'myWebView.setWebViewClient (новый WebViewClient()),' – Adam
@ dave-webb, пожалуйста, обновите образец, чтобы не вызвать loadUrl. Все, кто читает это, не копируем код (верните false из обратного вызова вместо вызова view.loadUrl). Вызов loadUrl вводит тонкую ошибку, если у вас есть iframe внутри страницы с пользовательским URL-схемой схемы (скажем ), она будет перемещаться по основному фрейму вашего приложения по этому URL-адресу, скорее всего, нарушит приложение, как побочный эффект. –
@Adam ++ - да, я тоже это заметил - я не мог понять, почему одно из моих веб-представлений НЕ использовало системный браузер, и это было потому, что я добавил к нему нового веб-клиента, который был всего лишь методом ANOTHER. Мне потребовалось некоторое время для отладки. –