Android - 具有多个webViewClient的多个webView:未在新的webViewClient

时间:2015-06-05 07:51:07

标签: android webview multiple-instances webviewclient

我有一个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 个答案:

答案 0 :(得分:1)

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

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

你可以在中间设置一个断点,看看发生了什么。 我的问题是请求方法是POST ,并且没有触发shouldOverrideUrlLoading,因此确保您的请求方法是GET。