我有一个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);
答案 0 :(得分:6)
错误:
public void onCloseWindow(WebView w){
super.onCloseWindow(w);
Log.d(TAG, "Window trying to close");
}