Not allowed to load local resource: blob:
时间: 2023-11-26 21:38:49 浏览: 158
mac上failed to load resource
Not allowed to load local resource错误表示在Android WebView中禁止加载本地资源。这是出于安全考虑,防止恶意网页访问本地敏感文件。解决这个问题的方法是使用WebViewClient的shouldOverrideUrlLoading方法,拦截对本地资源的访问,并进行处理。
以下是解决该问题的步骤:
1. 创建一个自定义的WebViewClient类,并重写shouldOverrideUrlLoading方法。
2. 在shouldOverrideUrlLoading方法中,判断URL是否是本地资源的URL。
3. 如果是本地资源的URL,可以选择进行拦截处理,例如将文件下载到本地后再进行展示。
4. 如果不是本地资源的URL,则允许WebView加载该URL。
以下是一个示例代码:
```java
public class CustomWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
Uri url = request.getUrl();
if (url.getScheme().equals("file")) {
// 如果是本地资源的URL,进行拦截处理
// 在这里可以选择将文件下载到本地后再进行展示
// 或者使用其他方式展示本地文件
return true;
} else {
// 允许WebView加载非本地资源的URL
return false;
}
}
}
```
然后,在创建WebView时,设置WebViewClient为自定义的WebViewClient类:
```java
WebView webView = new WebView(context);
webView.setWebViewClient(new CustomWebViewClient());
```
这样就可以解决Not allowed to load local resource错误。通过自定义WebViewClient的shouldOverrideUrlLoading方法,可以根据需要进行本地资源的拦截处理。
阅读全文