簡體   English   中英

Android-具有多個webViewClient的多個webView:在新的webViewClient上未調用shouldOverrideUrlLoading

[英]Android - multiple webViews with multiple webViewClient : shouldOverrideUrlLoading not called on new webViewClient

我有一個Android活動,其中一個片段專用於多個Webview。

我已經實現了關於多種Webview方法的能力,包括

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

對於第一個Web視圖,應該將shouldOverrideUrlLoading(..)稱為OK。

但是,當我點擊一些鏈接並創建一個新的webview時,設置與第一個完全相同,分配新的webViewClient和新的webChromeClient。

新的webViewClient覆蓋函數(例如onPageStart(..),onPageFinished(..))將調用ok,

但是,盡管它具有全新的webViewClient實例,但只有在新的webview上不應該調用OverrideUrlLoading()。

我已經檢查了兩個webViewClient的實例ID,並確認它們對於每個WebView都有不同的實例ID(這很好,因為這意味着兩個WebView實際上具有不同的webViewClients實例)

我不知道為什么新的webViewClient實例不會觸發shouldOverrideUrlLoading()函數。

有誰能夠幫助我? :(

謝謝!

情況類似。 在您的Web客戶端中,您可以實現以下功能:

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

您可以在中間設置一個斷點以查看發生了什么。 我的問題是請求方法是POST ,並且沒有觸發shouldOverrideUrlLoading ,因此請確保您的請求方法是GET。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM