在我們的應用程序中,我們使用webview在視圖內加載外部鏈接。使用loadurl方法加載鏈接,並設置webview客戶端以顯示preloader和webchrome客戶端,以偵聽webview的任何鏈接更改。Android - webview - shouldOverrideUrlLoading未被調用 - 當用戶單擊iframe中的鏈接時
URL在webview中加載。鏈接加載時,有幾個iframe,裏面有一個文本鏈接。點擊鏈接,頁面需要在默認瀏覽器中打開,而不是在webview內部打開。
使用min-sdk/API級別8構建項目。以下是供參考的代碼片段。在webview上創建附加的webview客戶端和webchromeclient,然後爲其分配URL。
private class SomWebViewClient extends WebChromeClient{
public void onProgressChanged (WebView view, int newProgress){
if(newProgress == 100){
}
}
}
private class SomWebViewDefClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
return true;
}
@Override
public void onLoadResource (WebView view, String url){
if(url.equalsIgnoreCase("http://google.com")){
view.stopLoading();
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
view.canGoBack();
}
}
}
我試着將WebViewClient添加到webview中,並確定在shouldOverrideUrlLoading方法中的URL更改。但這裏沒有捕獲任何事件。有什麼辦法來處理webview網址的iframe中的點擊。
當我嘗試不同的鏈接打開webview(它沒有任何iframes),能夠跟蹤點擊觸發內shouldOverrideUrlLoading。但是,當URL包含iframe,並且當用戶在webview中的任何鏈接上關閉時,無法跟蹤shouldOverrideUrlLoading內部,並在同一個webview本身中打開,而不是在新的瀏覽器窗口中打開。
當我搜索這個問題iam無法找到確切的問題。如果有人遇到類似問題並找到解決方案,請分享。
如果還有其他需要的,請告訴我。
由於事先 問候 Srinivasan.C