Использование различных версий
Ограничения, описанные в этом документе, распространяются только на Яндекс Навигатор версии 2.40 и выше. Однако то, какие параметры можно передавать в URL, зависит от версии и платформы.
На платформе Android Яндекс Навигатор предыдущих версий игнорирует все параметры URL, если URL содержит параметр signature
. В результате приложение запускается так, как если бы URL состоял только из URL-схемы.
Чтобы результат был предсказуемым, формируйте URL в зависимости от версии Яндекс Навигатора. Для версии:
-
2.36 и ниже — передавайте в URL только те параметры, которые описаны в разделе Формат URL.
-
2.40 и выше — передавайте в URL параметры
client
иsignature
, описанные в разделе Подпись ключом доступа.
Узнать версию Яндекс Навигатора, установленного на Android-устройстве, можно с помощью метода versionName
. Пример такой проверки для Java-приложения приведен ниже.
PackageInfo yandexNavigator = getPackageManager().getPackageInfo("ru.yandex.yandexnavi", 0);
String[] version = yandexNavigator.versionName.split("\\.");
int major = Integer.parseInt(version[0]);
int minor = Integer.parseInt(version[1]);
if (major > 2 || (major == 2 && minor >= 40)) {
// Используйте URL с параметрами `client` и `signature`.
}
На платформе iOS Яндекс Навигатор ранних версий игнорирует параметры client
и signature
и при этом корректно обрабатывает остальные параметры. Поэтому можно использовать один и тот же URL для всех версий приложения и нет необходимости проверять версию перед запуском.