Intereting Posts
В Android-браузере Android Google Chrome можно настроить безопасное обращение-небезопасное происхождение как безопасное Scrollview подталкивает вверх, когда отображается мягкая клавиатура Android. Что такое ParcelFileDescriptor в android Поиск «имени класса Android» в «AndroidManifest.xml», созданный Unity3D Android – настраиваемая кнопка с элементами рисования и градиентом программно Программно добавить событие в iPhone / Android-календарь с помощью PhoneGap / jQuery Mobile? Как сгенерировать отчеты с помощью градиента? Android-тестирование wifi-соединения программно SDK Местоположение не найдено Android Studio + Gradle Что такое "android.R.layout.simple_list_item_1"? Android Аннотации: Аннотированный класс Xyz_ не находит его оригинальным («не может найти символ класса Xyz») Встраивание объявлений в Android-приложение? Хотите узнать больше о очереди событий в Android UI Thread ClassCastException в тестах JUnit с Android KitKat Android: Как совместить Spannable.setSpan с String.format?

Откройте внешние ссылки в браузере с веб-браузером Android

У меня есть этот код, но не потому, что он работает, он продолжает открываться в webview, и я хочу, чтобы ссылки не принадлежали моему веб-сайту открытым в вашем браузере по умолчанию. Есть идеи? благодаря

private class CustomWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if(url.contains("message2space.es.vu")){ view.loadUrl(url); return true; }else{ return super.shouldOverrideUrlLoading(view, url); } } } 

Solutions Collecting From Web of "Откройте внешние ссылки в браузере с веб-браузером Android"

Проблема в том, что вам нужно отправить намерение в веб-браузер по умолчанию, чтобы открыть ссылку. То, что вы делаете, – это просто вызов другого метода в вашем веб-браузере для обработки ссылки. Всякий раз, когда вы хотите, чтобы другое приложение обрабатывало что-то, вам нужно использовать Intents. Попробуйте использовать этот код.

 private class CustomWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if(url.contains("message2space.es.vu")) { view.loadUrl(url); } else { Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); startActivity(i); } return true; } } 

Здесь очень сладкое и короткое решение

 @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); context.startActivity(i); return true; } 

Поскольку API-уровень 24 shouldOverrideUrlLoading(WebView view, String url) , устарел.

Современное решение:

  webView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) { Intent intent = new Intent(Intent.ACTION_VIEW, request.getUrl()); view.getContext().startActivity(intent); return true; } }); 

Ниже у меня очень простое решение ..

Например, для загрузки facebook.com на веб-просмотр и весь другой URL-адрес в браузере->

– Настройка onCreate

 webView.loadUrl("http://m.facebook.com"); webView.setWebViewClient(new MyAppWebViewClient()); 

Сделайте внутренний класс ..

Открытый класс MyAppWebViewClient расширяет WebViewClient {

 // handling external links as intents @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if( Uri.parse(url).getHost().endsWith("facebook.com") ) { return false; } Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); view.getContext().startActivity(intent); return true; } 

}