Jau*_*esv 33 browser android external hyperlink webview
我有这个代码,但不是因为它有效,它在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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
oni*_*nit 78
问题是您需要将Intent发送到默认Web浏览器以打开链接.您正在做的只是在Webview中调用另一种方法来处理链接.每当你想要另一个应用程序处理你需要使用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;
}
}
Run Code Online (Sandbox Code Playgroud)
Hat*_*tiv 13
由于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;
}
});
Run Code Online (Sandbox Code Playgroud)
小智 7
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
if((String.valueOf(request.getUrl())).contains("paramedya.com.tr")) {
view.loadUrl(String.valueOf(request.getUrl()));
} else {
Intent intent = new Intent(Intent.ACTION_VIEW, request.getUrl());
view.getContext().startActivity(intent);
}
return true;
}
});
Run Code Online (Sandbox Code Playgroud)
这是非常甜蜜和简短的解决方案
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
context.startActivity(i);
return true;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
45454 次 |
| 最近记录: |