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://")) {
}