Использование различных версий

Ограничения, описанные в этом документе, распространяются только на Яндекс Навигатор версии 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 для всех версий приложения и нет необходимости проверять версию перед запуском.