java - java(android)中的正则表达式可防止除一个之外的其他网址

标签 java android regex webview

我正在创建一个使用 webview 的应用程序。我希望只将我的网站域页面加载到我的应用程序(webview)中。

如果从我的应用程序中单击其他域,它应该要求在其他应用程序(浏览器)中打开。 在第一次点击时,我执行了以下操作来阻止其他域 -

@Override
public boolean shouldOverrideUrlLoading(WebView view, String urlNewString) {
                /* url=http://mywebsite.com */
                if(!urlNewString.contains(url)){

                    view.getContext().startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(urlNewString)));
                    return true;
                }

但问题是它也会打开 http://blogs.mywebsite.com以及浏览器中的所有其他子域,而不是我的应用程序的 WebView 中。 任何人都可以建议我一个正则表达式来完成需要的事情。 谢谢。

最佳答案

您可以使用java.net.URL类来拆分相关信息,例如:

java.net.URL url = new java.net.URL("http://blogs.mywebsite.com/foo/bar/baz.html");

boolean on_my_http_site = url.getProtocol().equals("http") && 
                         (url.getHost().equals("mywebsite.com") ||
                          url.getHost().endsWith(".mywebsite.com"));

关于java - java(android)中的正则表达式可防止除一个之外的其他网址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28739544/

相关文章:

regex - R + 将整数转换为 hh :mm format using regex + gsub

javascript - 正则表达式问题 : not allow a single dot (allow only if have digit before dot or digit after dot)

java - 如何安全地将线程生命周期绑定(bind)在一起,涉及 SQLite

单击按钮后 Android 应用程序停止工作

javascript - 将连续的 ","合并为单个 ","并在一个 RegExp 中删除前导和尾随 ","

Android - 无需在 map api v2 中按住即可拖动标记

android - keytool 错误 :java. io.IoException: 不正确的 AVA 格式

java - 架构 "DB"不存在

java - JRadiobutton ActionListener 没有响应

java - 关于范围的一般编程问题