Возврат к приложению из Webview при выходе из веб-приложения

Я вставил небольшой фрагмент своего кода, который позволит человеку щелкнуть webview и вернуться в мое приложение для входа. Веб-приложение в webview должно делать это только в том случае, если они нажимают кнопку выхода внутри веб-приложения, которое работает в webview. Другими словами, он не должен возвращаться в приложение для входа только потому, что они щелкнули где-то в веб-просмотре.

Я пытался сделать это с помощью onPageStarted и просто не могу заставить его работать. Он запрашивает 3 параметра, а Android Studio даже не компилирует его. Это может быть то, как я пытаюсь его назвать, поскольку я не совсем понимаю, как вызвать этот метод после прочтения документации.

Кроме того, я попытался создать частный класс с именем myWebClient для вызова onPageStarted, но, похоже, не могу правильно вызвать его в моем MainActivity.

Вот рабочий код, который вернет меня к моему приложению при ЛЮБОМ щелчке в веб-просмотре.

webView.setOnTouchListener(new View.OnTouchListener() {
        String checkurl;

        public boolean onTouch(View v, MotionEvent e) {

        Intent intent = new Intent(context, MainActivity.class); 
        startActivity(intent); 
        Toast.makeText(getApplicationContext(), checkurl, Toast.LENGTH_LONG).show();

        return false;
        }

        });

Вот что я пробовал, что не сработало.

webView.setOnTouchListener(new View.OnTouchListener() {
            String checkurl;
            public boolean onTouch(View v, MotionEvent e) {
                public void onPageStarted( WebView view, String url, Bitmap favicon){
                    if (checkurl == "mylogoutURLgoes here") {

                        Intent intent = new Intent(context, MainActivity.class); 
                        startActivity(intent); 
                    }
                    super.onPageStarted(webView, url, favicon);
                }
                Toast.makeText(getApplicationContext(), checkurl, Toast.LENGTH_LONG).show();

            }

        });

person Jay    schedule 21.04.2015    source источник


Ответы (2)


Вероятно, это то, что вы ищете:

webView.setWebViewClient(new WebViewClient(){
    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        if ("myLogoutUrl".equals(url)){
            //do stuff
        }
        super.onPageStarted(view, url, favicon);
    }
});

Другим решением будет добавление интерфейса Javascript для связи с кодом.

person nikis    schedule 21.04.2015
comment
Никис - Большое спасибо. Это ПОМОГЛО и решило мою проблему! Я действительно новичок в Java, и мне трудно правильно вызывать методы и классы, которые мне нужны. Я также не хотел изучать Javascript, так как один новый язык за раз — это все, на что способен мой мозг. - person Jay; 21.04.2015
comment
@Джей, кстати, вы можете посмотреть здесь developer.android.com/guide/ веб-приложения/webview.html - person nikis; 21.04.2015