Url 代号一中的模式匹配以验证 url
Url pattern matching in Codename One for validating urls
我的 Android 应用在打开失败时对 url 执行一些检查。
现在我正尝试通过代号一将其移植到 iOS。
我的代码如下。请注意,插入了 Android 代码,我想要对应的代码名称:
Boolean can = Display.getInstance().canExecute(url);
if(can != null && can) {
Display.getInstance().execute(url);
} else {
boolean validWebUrl =
Patterns.WEB_URL.matcher(url).matches(); //Android code, won't compile
if (validWebUrl)
{
//shows a message about activity/app not available
else {
//shows a message about the url being not valid
}
}
如您所见,用户会在检查后被告知结果(如果有意义)。
我想正确地通知用户
1-应用程序不可用
2-url 无效
事实上,条件应该是 !validWebUrl 才能正确检测到 url 是一个丢失的应用程序,但存在重叠情况,例如 Apple Maps 深层链接,所以最好的是:
Boolean can = Display.getInstance().canExecute(url);
if(can != null && can) {
Display.getInstance().execute(url);
} else {
ShowMessage("url not valid or app not available");
}
这只是一个正则表达式模式检查,您可以使用 RE class 执行类似的正则表达式检查,但我个人不喜欢正则表达式并尝试使用更简单的:
String lower = url.toLowerCase();
if(lower.startsWith("http://") || lower.startsWith("https://")) {
}
我的 Android 应用在打开失败时对 url 执行一些检查。
现在我正尝试通过代号一将其移植到 iOS。
我的代码如下。请注意,插入了 Android 代码,我想要对应的代码名称:
Boolean can = Display.getInstance().canExecute(url);
if(can != null && can) {
Display.getInstance().execute(url);
} else {
boolean validWebUrl =
Patterns.WEB_URL.matcher(url).matches(); //Android code, won't compile
if (validWebUrl)
{
//shows a message about activity/app not available
else {
//shows a message about the url being not valid
}
}
如您所见,用户会在检查后被告知结果(如果有意义)。 我想正确地通知用户
1-应用程序不可用
2-url 无效
事实上,条件应该是 !validWebUrl 才能正确检测到 url 是一个丢失的应用程序,但存在重叠情况,例如 Apple Maps 深层链接,所以最好的是:
Boolean can = Display.getInstance().canExecute(url);
if(can != null && can) {
Display.getInstance().execute(url);
} else {
ShowMessage("url not valid or app not available");
}
这只是一个正则表达式模式检查,您可以使用 RE class 执行类似的正则表达式检查,但我个人不喜欢正则表达式并尝试使用更简单的:
String lower = url.toLowerCase();
if(lower.startsWith("http://") || lower.startsWith("https://")) {
}