shouldOverrideUrlLoading 将加载“file:///”但不是“http://”网址参数
有效:
mWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl("file:///android_asset/www/css-js/app.css");
return true;
}
});
无效:
mWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl("http://yahoo.com");
return true;
}
});
Works:
mWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl("file:///android_asset/www/css-js/app.css");
return true;
}
});
Doesn't Work:
mWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl("http://yahoo.com");
return true;
}
});
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
问题在于正在创建无限循环。它每次都会重新覆盖新的 loadUrl。例如,这可以正常工作:
请注意,简单地保存最后一个覆盖 URL 并与
if(!url.equals(lastOverrideUrl))
进行比较在这种情况下(以及许多其他情况)将不起作用,因为URL 自动从“http://yahoo.com”更改为“http://www.yahoo.com/”。The problem is just that an infinite loop is being created. It re-overrides the new loadUrl each time. For example, this works without problems:
Note that simply saving the last override URL and comparing with
if(!url.equals(lastOverrideUrl))
will not work in this case (and many others), as the URL is automatically changed from "http://yahoo.com" to "http://www.yahoo.com/".