Сопоставление с образцом для глубоких ссылок Android - PullRequest
0 голосов
/ 03 февраля 2020

Мое приложение должно проверять Uris как веб-ссылки и глубокие ссылки.

Для веб-ссылок, таких как https://www.google.com Я нашел это полезным:

boolean validWebUrl =Patterns.WEB_URL.matcher(url).matches();

, но он возвращает отрицательное значение при использовании для глубоких ссылок, таких как appname: // подходящая строка

Что эквивалентно приведенной выше инструкции для глубоких ссылок?

1 Ответ

0 голосов
/ 07 февраля 2020

Я думаю, что сопоставление веб-URL основано на проверке строк, таких как http: // https: // и т. Д.

Итак, для моих целей я нашел, что этот обходной путь может быть полезен:

Uri url =Uri.parse(urlString);
Intent browserIntent = new Intent();
browserIntent.setData(url);
browserIntent.setAction(ACTION_VIEW);

try {
activity.startActivity(browserIntent);
}
catch (ActivityNotFoundException e)
{

boolean validWebUrl =
        Patterns.WEB_URL.matcher(urlString).matches();
if (!validWebUrl)
    {          
      openAlertDialog(activity,activity.getResources().getString(R.string.url_not_valid_dialog_title),activity.getResources().getString(R.string.url_not_valid_error_message));
    }
else {
      openAlertDialog(activity,activity.getResources().getString(R.string.activity_not_found_for_url_dialog_title),activity.getResources().getString(R.string.activity_not_found_for_url_message));
     }
}
...