android中的webview主机应用
我是初学者。当我开始使用webview制作应用程序时 我在上面看到了 当URL即将加载到当前WebView中时,让宿主应用程序有机会控制它 我的英语很差,但我知道这是怎么回事。但我不明白什么是主机应用程序,为什么它会这样调用 1) 主机应用程序是指我的应用程序中的web浏览器还是web视图 2) 如何在webview和浏览器中使用OverrideUrlLoading应该会有所帮助 3) 返回true将打开web浏览器android中的webview主机应用,android,webview,Android,Webview,我是初学者。当我开始使用webview制作应用程序时 我在上面看到了 当URL即将加载到当前WebView中时,让宿主应用程序有机会控制它 我的英语很差,但我知道这是怎么回事。但我不明白什么是主机应用程序,为什么它会这样调用 1) 主机应用程序是指我的应用程序中的web浏览器还是web视图 2) 如何在webview和浏览器中使用OverrideUrlLoading应该会有所帮助 3) 返回true将打开web浏览器 @Override public boolean shouldOverride
@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;
}
}
使用webview时,您可以使用shouldOverrideUrlLoading输入特定url(您希望用户看到的url)。此方法还将在从网页中删除数据时使用一些更高级的编码,允许您收集html数据,并可能以创造性的方式修改或利用html文档代码。然后在准备就绪时向用户显示webview
注意,根据您的最低api设置,您必须以不同的方式使用它。有一些关于谷歌搜索的教程,但大多数都过时了。这不是常见的做法。应用程序通常使用url提供的api,然后显示数据或预期的视觉效果。在文档中,调用view.loadUrl()并返回true不是正确的方法。这是正确的。使用webview时,您可以完全控制一切。您必须模拟浏览器。比如说,如果你真的想让一个用户登录一个网站。您将在输入框中输入用户名和密码并提交。然后url实际上在到达最后一页之前经过几个url。基本上加载url然后返回true就像说加载这个url然后停止加载这个url然后停止。Err true将覆盖传递给它的url加载该url,然后开始加载url。False只是加载传递给它的url。bro..实际上这里的主机应用程序是什么意思?这里的主机应用程序是指您的应用程序,您的编码包含webview。我可能弄错了。但我相信这意味着你想先在应用程序中使用预期的url做些什么,还是只在视图中显示url。是的,我想在webview中显示网页,但在文档中使用“主机应用程序”和“webview”一词让我感到困惑。如果是,则会导致当前webview中止在文档中加载url。但在我的网络视图中什么都没发生?为什么呢?主机应用程序是你的应用程序或活动,webview就像chrome浏览器一样。因此,中止加载url意味着停止在webview中加载此url。对url数据做一些处理,然后在这一点上变得复杂,因为您从那里构建“浏览器”。False表示只需使用为android设备选择的默认浏览器来加载和显示url。这是我能想出的最蹩脚的术语。