2014-04-22 119 views
5

的Android 4.1 的Eclipse 測試設備上window.close()不能在android webview中工作?

我試圖打開一個HTML/JavaScript的網頁,在我的本地託管就目前而言,通過網頁視圖我的Android應用程序。 頁面是假設正好接近通過下面的代碼

<script type="text/javascript"> 
    alert('hello'); 
    setInterval(function(){window.close();},2000); 
</script> 

2秒鐘後,我能夠通過使用WebChromeClient得到打招呼警報。但是window.close仍然不起作用。任何幫助,將不勝感激。

PS:這裏是我如何加載的網址:

WebSettings ws = webView.getSettings(); 
ws.setJavaScriptEnabled(true);  
ws.setJavaScriptCanOpenWindowsAutomatically(true); 
webView.loadUrl("http://192.168.1.137/abc.html"); 
webView.setWebChromeClient(new WebChromeClient()); 

回答

4

試試這個:

WebChromeClient webClient = new WebChromeClient(){ 

    public void onCloseWindow(Window w){ 
     super.onCloseWindow(w); 
     Log.d(TAG, "Window close"); 
    } 
}; 

說明:

public void onCloseWindow (WebView window) 

通知主機應用程序關閉指定的WebView並在必要時將其從視圖系統中移除。在這一點上,WebCore已經停止在這個窗口中的任何加載,並刪除了JavaScript中的任何交叉腳本功能。

+0

非常感謝。 還有一件事情 - 建議使用webview來執行像oauth這樣的過程?我需要從我的應用程序執行oauth。 – Abhinav

+1

是的,你可以做到這一點..檢查這個鏈接:http://blog.fordemobile.com/2012/08/display-oauth-login-webpage-in-dialog.html –