android中的webview主机应用程序

时间:2018-10-17 07:39:52

标签: android webview

我是初学者。当我开始使用webview制作应用程序时。

我在文档中看到https://developer.android.com/reference/android/webkit/WebViewClient#shouldOverrideUrlLoading(android.webkit.WebView,%20java.lang.String)

当即将在当前WebView中加载URL时,使宿主应用程序有机会控制。

我的英语能力很弱,但我知道托管的是什么。但是我不知道什么是主机应用程序,为什么它那样调用?

1)主机应用程序是我的应用程序中的Web浏览器还是Webview?

2)应该如何将overrideurlloading与webview和浏览器一起使用。

3)返回true将打开Web浏览器?

2 个答案:

答案 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,然后显示数据或预期的视觉效果。