java - 如何 "Monitor"WebView中的URL基础

标签 java android url android-webview webviewclient

所以我希望能够监控我的 WebView 应用程序正在加载的 URL。我试图完成的主要事情是将 WebView 保留在特定网站内,或者至少能够检测用户何时离开网站的 URL。

例子。如果我有 www.google.com 的基本 URL,当用户点击图片时,他会得到“http://www.google.com/imghp”,但是它仍然有 www.google.com 的基本 URL,所以如果有一种方法可以监控基本 URL 不再是 www.google.com,例如当用户点击搜索结果然后完全转到另一个网站时。

这样做的目的是我想向用户显示一个对话框或 Toast,让他们知道他们将离开为其创建此 WebView 应用程序的网站。

任何代码、想法或建议将不胜感激。

示例代码

 @Override
 public void onLoadResource(WebView view, String url)
    {
        if (url.equals("http://www.google.com"))
        {
            //do your own thing here
            view.loadUrl(url);
        }
        else
        {
            AlertDialog.Builder localBuilder2 = new AlertDialog.Builder(Webview_Main.this);
            localBuilder2.setTitle("Hey Wait!");
            localBuilder2.setMessage("You currently are about to leave the website\n\nIf you want to stay inside this website, Please click the Go Back button below");
            localBuilder2.setIcon(R.drawable.ic_launcher);
            localBuilder2.setPositiveButton("Go Back",
                    new DialogInterface.OnClickListener() {
                public void onClick(
                        DialogInterface paramDialogInterface,
                        int paramInt) {
                    web.goBack();
                }
            });
            localBuilder2.setNegativeButton("Continue",
                    new DialogInterface.OnClickListener() {
                public void onClick(
                        DialogInterface paramDialogInterface,
                        int paramInt) {

                }
            });

            localBuilder2.show();
        };
            super.onLoadResource(view, url);
        }    

但是上面的代码不起作用,只会不断弹出警告对话框,因为 URL 可能不同。

最佳答案

我已经使用以下代码解决了我的问题。

 @Override
 public boolean shouldOverrideUrlLoading(WebView view, String url) {
           if (url.startsWith("http://www.google.com"))
            { view.loadUrl(url);
            progressBar.setVisibility(View.VISIBLE);
            }
          else
            { Toast.makeText(getBaseContext(),
            "Your about to leave Google.com",
            Toast.LENGTH_LONG).show();
    }
 }

谢谢@MH。征求意见

关于java - 如何 "Monitor"WebView中的URL基础,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15937907/

相关文章:

java - 是否可以使可序列化类的锁暂时存在?

java - 消息事件无法解析

android - 如何在 Android Studio 3.6.1 中查看 XML 文件代码

url - 用于填写多个收件人的 OWA 2010 Url 参数

java - 在文件系统中打开 Derby/JDBC 数据库

android - 发布到 Android Market 的最佳时间/日期?

android - 在哪里可以查看约束布局的最新版本 NUMBER?

Django:urls.py 中的 urlpatterns 格式

java - HttpClient 和非 ASCII URL 字符(á、é、í、ó、ú)

java - System.currentTimeMillis() 返回的值是否受夏令时和闰秒调整的影响?