我正在尝试使用“_blank”使用 Android 浏览器打开新窗口。我听这个活动。
mWebView.getSettings().setSupportMultipleWindows(true);
mWebView.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onCreateWindow(WebView view, boolean dialog, boolean userGesture, android.os.Message resultMsg)
{
WebView.HitTestResult result = view.getHitTestResult();
String data = result.getExtra();
Context context = view.getContext();
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(data));
context.startActivity(browserIntent);
return false;
}
});
但是当点击图片链接时它只打开图片网址。不是链接。如何从 WebView.HitTestResult 获取锚点。我不想打开图像类型网址。谢谢你的有趣。请帮助我。
尝试了很多解决方案来获取目标页面网址而不是图像源,只有这个有效:
@Override
public boolean onCreateWindow(WebView view, boolean isDialog, boolean isUserGesture, Message resultMsg) {
WebView.HitTestResult result = view.getHitTestResult();
String url = result.getExtra();
// Ensure that images with hyperlink return the correct URL, not the image source
if (result.getType() == WebView.HitTestResult.SRC_IMAGE_ANCHOR_TYPE) {
Message href = view.getHandler().obtainMessage();
view.requestFocusNodeHref(href);
Bundle data = href.getData();
if (data != null) {
String imageUrl = data.getString("url");
if (imageUrl != null && !imageUrl.isEmpty()) {
url = imageUrl;
//Handle url as you want..
webView.loadUrl(url);
}
}
}
return true;
}