我正在尝试加载一个网页在资产文件夹和应用程序的本地存储使用webasset加载器使用谷歌提供的代码。
final WebViewAssetLoader assetLoader = new WebViewAssetLoader.Builder()
.addPathHandler("/assets/", new WebViewAssetLoader.AssetsPathHandler(this))
.build();
myWebView = (WebView) findViewById(R.id.webview);
myWebView.setWebViewClient(new WebViewClient() {
@Override
@RequiresApi(21)
public WebResourceResponse shouldInterceptRequest(WebView view,
WebResourceRequest request) {
return assetLoader.shouldInterceptRequest(request.getUrl());
}
//This gives the error: shouldInterceptRequest(WebView, WebResourceRequest)' is already
defined in 'Anonymous class derived from android.webkit.WebViewClient
@Override
@SuppressWarnings("deprecation") // for API < 21
public WebResourceResponse shouldInterceptRequest(WebView view,
WebResourceRequest request) {
return assetLoader.shouldInterceptRequest(Uri.parse(request));
//This gives an error for the request variable. It says : Required type: String and
Provided: WebResourceRequest. When I cast it as a string type, it
gives an error similar to first error.
}
});有谁能带我到这里来吗?我在这里做错了什么,我使用的是google给出的精确代码。有什么关于使用这个类的教程吗?
发布于 2021-02-12 16:11:14
您在文档中找到的代码片段是错误的,我已经为它打开了一个issue。
问题是第二个方法的签名,它引用了一个废弃的实现,应该改为:
public WebResourceResponse shouldInterceptRequest(WebView view, String url) {使用它,它会像预期的那样编译(和工作)。
https://stackoverflow.com/questions/65549892
复制相似问题