android webview中的超链接,Android的 - 如何拦截iframe(webview)内的链接,并检查它是否完全加载...
时间: 2024-02-25 16:53:18 浏览: 134
您可以通过重写WebViewClient的shouldOverrideUrlLoading方法来拦截WebView中的链接,并检查它是否完全加载。以下是示例代码:
```java
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
// 检查链接是否来自iframe
if (request.isForMainFrame()) {
return false; // 不拦截主框架的链接
} else {
// 拦截iframe中的链接
// 检查链接是否完全加载
if (request.getUrl().toString().endsWith(".pdf")) {
// 如果链接以.pdf结尾,则不加载链接,而是下载PDF文件
downloadPdf(request.getUrl().toString());
return true;
} else {
return false; // 继续加载链接
}
}
}
});
```
在上面的示例中,我们首先检查链接是否来自iframe。如果是,则检查链接是否完全加载,如果链接以.pdf结尾,则不加载链接,而是下载PDF文件。如果链接不是以.pdf结尾,则继续加载链接。
重要提示:如果您需要在Android 7.0及更高版本上拦截非HTTP链接,例如file://,您需要使用shouldOverrideUrlLoading(WebView view, String url)方法,因为WebResourceRequest.getUrl()在7.0及更高版本上不再返回完整的链接。
阅读全文