java - 注销 Web 应用程序时从 Webview 返回应用程序

标签 java android methods webview

我粘贴了一小段代码,允许用户单击webview并返回到我的登录应用程序。仅当用户单击在 webview 中运行的 Web 应用程序内的注销时,webview 中的 Web 应用程序才应执行此操作。换句话说,它不应该仅仅因为他们单击了 WebView 中的某个位置就返回到登录应用程序。

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

此外,我尝试创建一个名为 myWebClient 的私有(private)类来调用 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();

            }

        });

最佳答案

这可能就是您正在寻找的:

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 接口(interface)来与代码进行通信。

关于java - 注销 Web 应用程序时从 Webview 返回应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29776806/

相关文章:

java - java中ZipCrypto/Zip 2.0加密的实现

java - 如何从 Activity 外部扩展 SupportActionBar 菜单

android - android 中的 websockets 和同步适配器

python - 如何有效且系统地重载Python类方法

java - 原始类型和数据完整性列表

java - 我怎样才能得到当前位置

java - 我应该如何生成初始化 vector ?

java - 更改应用程序语言

php - flock() 只适用于当前方法吗?

JavaScript Array.splice() 方法第一个参数(起始索引)