私は Facebook シェアラーの php ページを読み込んでいる WebView を持っています。このページには確認の形式はありません。ユーザーが共有またはキャンセルすると、ウィンドウが閉じます。
Web ビューに読み込まれるため、それ自体を「閉じる」ものは何もないため、閉じようとしているウィンドウを検出し、そのコールバックに対処する必要があります。
私のさまざまな検索から、これを処理する方法は WebChromeClient を介しているようです。だから、私は次のことを試みていますが、コールバックは決して呼び出されません。私は明らかに何かが欠けていますが、何がわかりません。*onCloseWindow イベントをオーバーライドする必要があるように感じますが、これにより、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);