如何检测WebView页面何时尝试关闭?

时间:2011-08-23 17:23:09

标签: android webview webchromeclient

我有一个WebView,我正在加载facebook sharer php页面。此页面没有任何形式的确认,只需在用户共享或取消后关闭窗口即可。

由于它被加载到Web视图中,没有什么可以“关闭”perse,所以,我需要检测窗口试图关闭并对该回调进行操作。

从我的各种搜索看来,处理这个的方法是通过WebChromeClient。所以,我正在尝试以下内容,但回调从未被调用过。我显然缺少一些东西,但不知道是什么。它*感觉就像onCloseWindow事件应该是Overriden,但这会导致eclipse(合理地)抱怨我需要超级实例,文档似乎没有建议这样做。

所有帮助表示赞赏。

[编辑]哦,我只是尝试交换动作的顺序,在调用url之前设置WebChromeClient,并且(如我所料)不会以任何方式改变行为。

webview.getSettings().setJavaScriptEnabled(true);
    webview.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); 
    webview.setWebViewClient(new WebViewClient()); 
    webview.loadUrl("http://www.facebook.com/sharer/sharer.php?u=http://EXTRACTED.com?img_id=abc");// + getIntent().getStringExtra("userId"));
    WebChromeClient wbc = new WebChromeClient(){

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

    webview.setWebChromeClient(wbc);

1 个答案:

答案 0 :(得分:6)

错误:

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