Im Moment habe ich eine App, die eine Webansicht lädt und in der alle Klicks gespeichert sind. Was ich tun möchte, ist, wenn ein bestimmter Link, z. B. http://www.google.com , in der App angeklickt wird, wird der Standardbrowser geöffnet. Wenn jemand Ideen hat, lass es mich wissen!
Ich musste heute dasselbe tun und habe auf StackOverflow eine sehr nützliche Antwort gefunden, die ich hier teilen möchte, falls jemand anderes sie benötigt.
webView.setWebViewClient(new WebViewClient(){
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url != null && (url.startsWith("http://") || url.startsWith("https://"))) {
view.getContext().startActivity(
new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
return true;
} else {
return false;
}
}
});
WebView webview = (WebView) findViewById(R.id.webview);
webview.loadUrl(https://whatoplay.com/);
sie müssen diesen Code nicht einfügen
// webview.setWebViewClient(new WebViewClient());
stattdessen müssen Sie unten d-Code verwenden
webview.setWebViewClient(new WebViewClient()
{
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
String url2="https://whatoplay.com/";
// all links with in ur site will be open inside the webview
//links that start ur domain example(http://www.example.com/)
if (url != null && url.startsWith(url2)){
return false;
}
// all links that points outside the site will be open in a normal Android browser
else
{
view.getContext().startActivity(
new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
return true;
}
}
});
sie können dafür Intent verwenden:
Intent browserIntent = new Intent("Android.intent.action.VIEW", Uri.parse("your Url"));
startActivity(browserIntent);
Sie müssen nur die folgende Zeile hinzufügen
yourWebViewName.setWebViewClient(new WebViewClient());
Aktivieren Sie this für offizielle Dokumentation.
Sie können hierfür einen Intent verwenden:
Uri uriUrl = Uri.parse("http://www.google.com/");
Intent launchBrowser = new Intent(Intent.ACTION_VIEW, uriUrl);
startActivity(launchBrowser);