Java Android WebView-不应使用url请求调用shouldOverrideUrlLoading

Java Android WebView-不应使用url请求调用shouldOverrideUrlLoading,java,android,webview,Java,Android,Webview,我的webapp在加载过程中的某个时刻向一个url发出请求,该url为callback://以便在我的android应用程序中触发一个函数 我正试图用shouldOverrideUrlLoading捕获此请求,但它未被调用。。有什么想法吗 是非标准url方案导致了这一问题吗?我也有同样的问题。在谷歌搜索了很长时间后,我在谷歌的Android开发者文档中找到了一个解决方案 如果您使用的是android 4.2+版本,则必须在URL中添加前缀。您可以将其添加到服务器端,也可以添加: String c

我的webapp在加载过程中的某个时刻向一个url发出请求,该url为callback://以便在我的android应用程序中触发一个函数

我正试图用
shouldOverrideUrlLoading
捕获此请求,但它未被调用。。有什么想法吗


是非标准url方案导致了这一问题吗?

我也有同样的问题。在谷歌搜索了很长时间后,我在谷歌的Android开发者文档中找到了一个解决方案

如果您使用的是android 4.2+版本,则必须在URL中添加前缀。您可以将其添加到服务器端,也可以添加:

String convertedHtml = yourHtmlString.replace("<a href=\"#", "<a href=link:\"");

我希望这会对你有所帮助。

这是他们在报纸上说的话

在当前WebView中即将加载新url时,让宿主应用程序有机会接管控制权。如果未提供WebViewClient,默认情况下WebView将要求Activity Manager为url选择适当的处理程序。如果提供了WebViewClient,则返回true表示主机应用程序处理url,而返回false表示当前WebView处理url。对于使用POST“方法”的请求,不调用此方法


更重要的是他们没有说什么。只有当用户点击Webview中的链接时,才会调用该方法。您应该喜欢用代码在WebView中调用loadUrl()方法。这不会导致调用shouldOverrideUrlLoading。这就是你所看到的。

。。如果我想要多个url方案呢?我有两个不同的,做不同的事情,这也是一个例子。如果您需要多个url方案,您应该尝试使用服务器端解决方案来解决。我在谷歌开发者链接上搜索了你的问题,但找不到相关页面。你可以在这里查看
webView.setWebViewClient(new WebViewClient() {
            // Override URL

            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                //Log.e("url:", url);
                if (url.startsWith("link:"))
                {
                 // do what you want 
                 return true;
                }
            }
}