现在,我有一个加载Web视图的应用程序,所有点击都保留在该应用程序中。我想做的是,在应用程序中单击某个链接(例如http://www.google.com)时,它将打开默认浏览器。如果有人有任何想法,请告诉我!
现在,我有一个加载Web视图的应用程序,所有点击都保留在该应用程序中。我想做的是,在应用程序中单击某个链接(例如http://www.google.com)时,它将打开默认浏览器。如果有人有任何想法,请告诉我!
Answers:
我今天必须做同样的事情,我在StackOverflow上找到了一个非常有用的答案,我想在这里分享,以防别人需要。
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;
}
}
});
shouldOverrideUrlLoading(WebView view, String url)
API 24中已弃用。请检查此答案。
WebView webview = (WebView) findViewById(R.id.webview);
webview.loadUrl(https://whatoplay.com/);
您不必包含此代码
// webview.setWebViewClient(new WebViewClient());
相反,您需要在下面使用d代码
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;
}
}
});