当前位置: 首页 > 知识库问答 >
问题:

android中的webview主机应用

田信然
2023-03-14

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

我在上面看到了https://developer.android.com/reference/android/webkit/WebViewClient#shouldOverrideUrlLoading(android.webkit.WebView,java.lang.String)

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

我英语很差,但我知道这是怎么回事。但我不明白什么是主机应用程序,为什么它会这样调用?

1)主机应用程序是指我的应用程序中的Web浏览器或webview吗?

2) 如何在webview和浏览器中使用OverrideUrlLoading应该会有所帮助。

3)返回true会打开网络浏览器??

共有2个答案

屠德宇
2023-03-14

使用webview时,您可以使用shouldOverrideUrlLoading输入特定的url(您希望用户看到的url)。当从网页中删除数据时,这种方法还将使用一些更高级的编码,允许您收集html数据,并可能以创造性的方式修改或利用html文档代码。然后在准备就绪时向用户显示webview。

注意,根据你设定的最低api,你必须以不同的方式使用它。有一些关于谷歌搜索的教程,但大多数都过时了。这不是常见的做法。应用程序通常使用url提供的api,然后显示数据或预期的视觉效果。

常波鸿
2023-03-14
@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;
    }
}
 类似资料:
  • 我已经为android Studio创建了一个webview应用程序。但没有加载web URL。错误为NET::ERR_ACCESS_DENIED。有谁能帮忙吗

  • 问题内容: 我的Android应用程序中有一个webview,但是当有人在站点中导航时,它会在新窗口中打开,我希望它停留在webview中。是否可以轻松地做到这一点?这是我活动中的代码: 问题答案: 您必须创建一个: 然后将其设置为如下所示:

  • 我读到应该重写方法。但是我得到一个错误,不能为重写“shouldoverrideurlloading”。 如果您能给出一个具有progressbar和webView的示例,并在同一个webView中打开新的URL,我将非常高兴。

  • 当我向服务器发布一些url时,我试图在webview中获取响应标题。我使用的是shouldInterceptRequest方法。 此方法返回WebResource响应对象。但我不知道如何从中获取响应标头。 默认情况下,返回super。shouldInterceptRequest(视图、请求) 返回null。 那么,应该做些什么才能捕捉到实际的webview响应呢。

  • 我试着打开。PDF文件在WebView中。我写的代码,可以显示pdf在WebView。 ...

  • null 我设置了webclient @override公共布尔onShowFileChooser(WebView WebView,ValueCallback filePathCallback,FileChooserParams FileChooserParams){返回True;}@override public void onGeolocationPermissionsShowPrompt(S