【问题标题】:Returning to App from Webview on logout of web application注销 Web 应用程序时从 Webview 返回应用程序
【发布时间】:2015-04-21 15:35:52
【问题描述】:

我已经粘贴了我的代码的一个小 sn-p,它将允许该人单击 webview 并返回到我的登录应用程序。 webview 中的 Web 应用程序只有在 webview 中运行的 Web 应用程序内单击注销时才应该这样做。换句话说,它不应该仅仅因为他们点击了 web 视图中的某个地方而返回到登录应用程序。

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

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

这里的工作代码可以让我在 web 视图中的任何点击都回到我的应用程序。

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

            }

        });

【问题讨论】:

    标签: java android methods webview


    【解决方案1】:

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

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

    【讨论】:

    • nikis - 非常感谢。这帮助并解决了我的问题!我对 Java 真的很陌生,并且很难正确调用我需要的方法和类。我也不想学习 Javascript,因为我的大脑只能处理一种新语言。
    • @Jay btw,你可能想看看这里developer.android.com/guide/webapps/webview.html
    【解决方案2】:

    这篇文章应该会引导您走向正确的方向。 Detect click on HTML button through javascript in Android WebView

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

    【讨论】:

    • Nic - 感谢您的链接和快速回复。 Javascript 是我要探索的下一个语言。
    猜你喜欢
    • 2019-09-20
    • 1970-01-01
    • 1970-01-01
    • 2016-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-09
    相关资源
    最近更新 更多