java(android) 中的 RegExp 以防止除一个以外的其他网址
RegExp in java(android) to prevent other urls except one
我正在创建一个使用 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
class拆分出相关信息,如:
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"));
我正在创建一个使用 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
class拆分出相关信息,如:
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"));