【问题标题】:Stop android browser from loading URL阻止 android 浏览器加载 URL
【发布时间】:2014-03-06 22:23:31
【问题描述】:

有什么方法可以阻止 android 原生浏览器加载我的应用提供的特定 URL(例如 xyz.com)并显示有关阻止的通知?如果我们无法停止,那么每当访问 xyz.com 时,如何将浏览器重定向到另一个 HTML 页面,例如 otherPage.html(保存在 sdcard 中)?

我花了很多天的时间进行大量搜索,但到目前为止没有运气。

任何示例/教程都会很棒。

捆绑感谢

【问题讨论】:

    标签: android browser browser-history android-browser url-redirection


    【解决方案1】:

    您可以创建一个 WebViewClient 并“过滤”特定的 url:

    webview.setWebViewClient(new WebViewClient() {
       public boolean shouldOverrideUrlLoading(WebView view, String url){
         if(url.equals("xyz.com")){
           view.loadUrl("www.otherurl.com");
         }
         return false; //we handle url loading on our webview
       }
    });
    

    【讨论】:

    • 实际上,用户在 android 浏览器中访问 URL,我的应用读取上次访问 URL 的浏览历史记录。如果 URL 是 xyz.com,则应用程序必须提醒用户并阻止它在未来加载。我是android新手,上面的代码也适用于我的场景。
    • 我不认为您可以按照您描述的方式更改另一个应用程序的行为。是的,您可以提醒用户,但不能阻止他加载此网址...
    • 因此我们可以通过使用您答案中的代码重定向到 otherURL.com 来提醒用户。对吗?
    • 如果用户在您的应用内并使用 webview 进行导航,则该代码有效。
    • 如何在android默认浏览器中访问xyz.com时重定向到otherPage.html。?有人有想法吗?
    【解决方案2】:

    这可以使用Intents 工作。每当应用程序打开一个 URL 时,就会创建一个特定的意图并且浏览器会捕获它。在我的设备上,标准浏览器每次都会创建意图并自行捕获它们,即使我只是单击浏览器窗口内的链接。

    所以只需编写一个小应用程序来捕获浏览器意图(上面的链接和vogel/a 应该会有所帮助),将给定的 URL 与黑名单进行比较,然后显示警告或将意图转发给浏览器。 现在用户只需将您的应用指定为此类意图的标准,然后您就可以了。

    【讨论】:

      猜你喜欢
      • 2016-09-24
      • 2011-10-09
      • 1970-01-01
      • 2021-09-19
      • 1970-01-01
      • 2012-04-16
      • 2018-12-04
      • 1970-01-01
      相关资源
      最近更新 更多