Как определить, когда страница WebView пытается закрыть?

У меня есть WebView, в который я загружаю страницу php Facebook sharer. Эта страница не имеет какой-либо формы подтверждения, она просто закрывает окно после того, как пользователь поделился или отменил.

Поскольку он загружен в веб-представление, "закрывать" его нечего, поэтому мне нужно обнаружить окно, пытающееся закрыть его, и выполнить этот обратный вызов.

Из моих различных поисков выясняется, что способ справиться с этим - через WebChromeClient. Итак, я пытаюсь сделать следующее, но обратный вызов никогда не вызывается. Я явно что-то упускаю, но не знаю что. Такое ощущение, что событие onCloseWindow должно быть переопределено, но это заставляет затмение жаловаться (разумно) на то, что мне нужен супер экземпляр, что, по-видимому, не представляется возможным в документации.

Вся помощь приветствуется.

[EDIT] о, и я только что попытался поменять порядок действий, установить WebChromeClient перед вызовом url, и (как я ожидал) это никак не изменило поведение.

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 ответ

Решение

Что случилось с:

   public void onCloseWindow(WebView w){
        super.onCloseWindow(w);
        Log.d(TAG, "Window trying to close");
    }
Другие вопросы по тегам