我需要在Web视图中的URL链接中添加一些标题(在其被调用之前),然后使用以下代码扩展WebViewClient
类:
@TargetApi(Build.VERSION_CODES.N)
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
final Uri uri = request.getUrl();
return handleUri(view, uri);
}
private boolean handleUri(WebView view, final Uri uri) {
if (uri.toString().startsWith("mailto:")) {
// some code
return true;
} else {
view.loadUrl(uri.toString(), headers);
return true;
}
}
headers
变量是Map<String, String>
变量。
在服务器上,我记录了单击webview链接时获得的标头,看到的是:
view.loadUrl(uri.toString(), headers)
行上放置一个断点(在android studio中),即使该行上的代码被阻止,我也会在服务器上看到日志头(在{{1}之前有第一个调用},这就是奇怪的行为。所以我不知道为什么当我单击webview链接时,该链接显然被打开了两次。