2015-11-03 184 views
0

我想知道如何攔截從WebView內的Cor​​dova InAppBrowser URL加載。科爾多瓦攔截URL加載inappbrowser

目前,我可以攔截從下面的代碼主要的WebView URL裝載在我MainActivity

final WebView myWebView = (WebView) this.appView.getView(); 
    myWebView.setWebViewClient(new SystemWebViewClient((SystemWebViewEngine) this.appView.getEngine()) { 

     @Override 
     public WebResourceResponse shouldInterceptRequest(WebView view, String url) { 
     // Some custom logic 
     } 

但是當我加載InAppBrowser網頁視圖內的一些URL,這個代碼不攔截該請求。有什麼建議麼?

回答

0

你必須修改inAppBrowser代碼

https://github.com/apache/cordova-plugin-inappbrowser/blob/master/src/android/InAppBrowser.java

線646 webViewClient設置:

inAppWebView.setWebViewClient(client); 

客戶有InAppBrowserClient類,它的上線742 定義您可以在那裏添加shouldInterceptRequest邏輯或使用您自己的WebViewClient子類

+0

是的。我覆蓋了'InAppBrowserClient'的'onResourceLoad',現在我可以攔截請求。使用科爾多瓦5.3.3。 –

0

您可以使用InAppBrowser的executeScript功能來執行IAB裏面的一些腳本,一旦加載頁面,然後讓該腳本任何你想要的邏輯呢,example from the docs

var ref = cordova.InAppBrowser.open('http://apache.org', '_blank', 'location=yes'); 

ref.addEventListener ('loadstop',function(){ ref.executeScript({file:「myscript.js」}); });

這是否適合您可能取決於您的自定義邏輯需要做什麼,但它可能是一個值得調查的途徑。您也許可以將事件偵聽器添加到頁面中的所有鏈接,並在單擊它們時運行自定義邏輯。