在Android WebView中,window.close()无法正常工作?

7

Android 4.1 Eclipse 在设备上测试

我正在尝试通过webview在我的android应用程序中打开一个托管在本地主机上的html/javascript网页。 该页面应该通过以下代码在2秒后关闭

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

我能够通过使用WebChromeClient来获取hello警报。但是window.close仍然无法工作。任何帮助都将不胜感激。
PS:以下是我加载URL的方式:
WebSettings ws = webView.getSettings();
ws.setJavaScriptEnabled(true);      
ws.setJavaScriptCanOpenWindowsAutomatically(true);
webView.loadUrl("http://192.168.1.137/abc.html");
webView.setWebChromeClient(new WebChromeClient());
2个回答

7

试试这个:

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中的任何跨脚本能力。


非常感谢。 还有一件事- 使用webview来执行像oauth这样的进程是否明智?我需要从我的应用程序执行oauth。 - Abhinav
1
是的,你可以这样做。请查看此链接:http://blog.fordemobile.com/2012/08/display-oauth-login-webpage-in-dialog.html - Siddharth_Vyas

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接