我是初学者。当我开始使用webview制作应用程序时。
当即将在当前WebView中加载URL时,使宿主应用程序有机会控制。
我的英语能力很弱,但我知道托管的是什么。但是我不知道什么是主机应用程序,为什么它那样调用?
1)主机应用程序是我的应用程序中的Web浏览器还是Webview?
2)应该如何将overrideurlloading与webview和浏览器一起使用。
3)返回true将打开Web浏览器?
答案 0 :(得分:1)
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
final Uri uri = Uri.parse(url);
return handleUri(view, uri);
}
@TargetApi(Build.VERSION_CODES.N)
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
final Uri uri = request.getUrl();
return handleUri(view, uri);
}
和handleUri方法
private boolean handleUri(WebView view, Uri uri) {
final String scheme = uri.getScheme();
final String host = uri.getHost();
// Based on some condition you need to determine if you are going to load the url
// in your web view itself or in a browser.
// You can use `host` or `scheme` or any part of the `uri` to decide.
if (scheme.startsWith("http:") || scheme.startsWith("https:")) {
view.loadUrl(uri.getPath());
return true;
} else {
return false;
}
}
答案 1 :(得分:0)
使用Webview时,您应使用shouldOverrideUrlLoading输入特定的url(您希望用户看到的URL)。当从网页中抓取数据时,此方法还将使用一些更高级的编码,使您可以收集html数据,并可能以创造性的方式修改或利用html文档代码。准备好后,向用户显示Web视图。
Ps。抬头取决于您设置的最低api,您必须以不同的方式使用它。有一些关于谷歌搜索的教程,但大多数已经过时。这不是常见的做法。应用经常会使用网址提供的api,然后显示数据或预期的视觉效果。