在Web应用程序注销时从Webview返回App

时间:2015-04-21 15:35:52

标签: java android methods webview

我已粘贴了一小段代码,允许此人点击webview并返回我的登录应用。 webview中的Web应用程序只有在单击 webview中运行的Web应用程序内的注销时才会执行此操作。换句话说,它不应该仅仅因为他们点击了webview中的某个地方而返回登录应用程序。

我尝试使用onPageStarted执行此操作,但无法使其正常工作。它要求3个参数,Android Studio甚至不会编译它。这可能是我试图调用它的方式,因为我不太明白如何在阅读文档后调用该方法。

另外,我尝试创建一个名为myWebClient的私有类来调用onPageStarted,但似乎无法在我的MainActivity中正确地调用那个。

这是工作代码,它将带我回到我的应用程序,在webview中的任何点击。

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();

            }

        });

2 个答案:

答案 0 :(得分:3)

这可能就是你要找的东西:

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接口以与代码进行通信。

答案 1 :(得分:0)

这篇文章应该引导你朝着正确的方向前进。 Detect click on HTML button through javascript in Android WebView

您需要在Java中创建按钮并在Web应用程序中添加javascript界面​​组件来处理它们。