首页 文章

Android - 具有多个webViewClient的多个webView:未在新webViewClient上调用shouldOverrideUrlLoading

提问于
浏览
0

我有一个Android活动,其片段专用于多个webview .

我已经实现了多种webview方法,包括

public boolean onCreateWindow(WebView view, boolean isDialog, boolean isUserGesture, Message resultMsg) { 
    // source code here ... 
}

对于第一个webview,shouldOverrideUrlLoading(..)被调用OK .

但是当我按照一些链接创建一个新的webview时,设置与第一个相同,分配新的webViewClient和新的webChromeClient .

新的webViewClient覆盖函数,如onPageStart(..),onPageFinished(..)将调用ok,

但是只有在新的webview上没有调用onOverrideUrlLoading(),尽管它有一个全新的webViewClient实例 .

我检查了两个webViewClient的实例ID,并确认它们对每个webview都有不同的实例ID(这很好,因为这意味着两个webview实际上都有不同的webViewClients实例)

我不知道为什么新的webViewClient实例不会触发shouldOverrideUrlLoading()函数 .

有谁能够帮我? :(

谢谢!

1 回答

  • 1

    有一个类似的情况 . 在您的Web客户端中,您可以实现以下功能:

    @Override
        public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
           WebResourceResponse response = super.shouldInterceptRequest(view, request);
        return response;
    }
    

    你可以在中间设置一个断点来看看发生了什么 . My problem was that the request method was POST ,并没有触发 shouldOverrideUrlLoading ,所以 make sure that your request method is GET.

相关问题