Webview - открывать ссылки во внешних приложениях и браузерах / Android
Я новичок в создании приложений для Android. Я сделал веб-приложение на HTML, которое я хочу использовать в своем приложении, которое я делаю в Android Studio. Мне удалось сделать простое веб-представление в Android Studio, которое заставляет мое веб-приложение работать нормально, когда я тестирую его на своем устройстве. Единственная проблема заключается в том, что веб-представление обрабатывает все URL-адреса внутри моего веб-приложения. Веб-приложение состоит из вкладок, которые направляют меня на разные страницы, когда я нажимаю на них, и это то, что я хочу. Но у меня есть контактные кнопки и разные ссылки, которые я хочу «освободить» из веб-просмотра. Возьмем кнопку контакта в качестве примера. У меня есть заметка Galaxy, которую я использую для тестирования своих приложений. Когда я открываю свое приложение на своем телефоне, я вижу свое веб-приложение и могу перемещаться. Когда я нажимаю кнопку контакта, веб-представление обрабатывает ссылку и дает мне «страницу не удалось загрузить» вместо открытия почтового приложения на моем телефоне. У меня также есть кнопки со ссылками, которые я хочу открыть во внешнем браузере на моем телефоне. Я надеюсь, что вы понимаете мою проблему, и я извиняюсь за мой плохой английский.
Это часть моего кода для веб-просмотра.
Mainactivity.java
public class MainActivity extends ActionBarActivity {
WebView browser;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
browser = (WebView) findViewById(R.id.wvwMain);
browser.getSettings().setJavaScriptEnabled(true);
browser.getSettings().setLoadWithOverviewMode(true);
browser.getSettings().setUseWideViewPort(true);
browser.setWebViewClient(new ourViewClient());
try {
browser.loadUrl("http://WebAppURL");
} catch (Exception e) {
e.printStackTrace();
}
}
OurViewClient.java
public class ourViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}