我在webview
内容上使用Intent.ACTION_VIEW
在不同设备上点击了一个难以管理的开放链接。
我的情况是:我在我的应用内webview
内显示了一些HTML代码,此内容有一些链接(href),然后在点击事件上我想打开外部应用的链接和不在同一个网页视图中。
我通过以下方式实现了这一目标:
webview.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(request.getUrl().toString()));
activity.startActivity(intent);
return true;
}
});
所以,问题是这并不会发生在所有设备上。
使用Android 7它可以正常工作,但在版本6上没有。无论如何管理不同的版本我已经使用了不同的实现。
webview.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
activity.startActivity(intent);
return true;
}
});
我已经查看了stackoverflow,但唯一的答案是我发现使用上面的代码。
感谢您的支持
更新 - 15/02/18
我已经解决了这个问题,将两个@Override
方法放在一起就像这样:
webview.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(request.getUrl().toString()));
activity.startActivity(intent);
return true;
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
activity.startActivity(intent);
return true;
}
});