Запуск приложения Яндекс.Навигатор

Мобильное приложение Яндекс.Навигатор можно запускать из других мобильных приложений и со страниц сайтов.

В этом документе описаны способы запуска приложения на платформах Android и iOS.

Запуск из браузера

Чтобы запустить Яндекс.Навигатор со страницы, отображаемой в браузере, необходимо сформировать HTML‑ссылку, в которой используется URL-схема yandexnavi.

<a href="yandexnavi://">Открыть Яндекс.Навигатор</a>

Когда пользователь мобильного устройства переходит по такой гиперссылке, открывается приложение Яндекс.Навигатор.

Запуск из нативного приложения

Чтобы запустить Яндекс.Навигатор из Java‑приложения:

  1. Создайте объект типа Intent . В конструктор передайте действие ACTION_VIEW и URL, содержащий схему yandexnavi.

    Uri uri = Uri.parse("yandexnavi://");
    Intent intent = new Intent(Intent.ACTION_VIEW, uri);
  2. Вызовите метод setPackage, в качестве аргумента передайте название пакета ru.yandex.yandexnavi.

    intent.setPackage("ru.yandex.yandexnavi");
    Примечание.

    Пакет указывается, чтобы обработку объекта Intent выполнило приложение Яндекс.Навигатор. Если не указать пакет, операционная система самостоятельно определит, установлены ли на устройстве приложения, которые могут обработать Intent. Если таких приложений несколько, пользователю будет предложено выбрать, какое из них открыть.

  3. Вызовите метод startActivity класса Context и приложение Яндекс.Навигатор запустится.

    startActivity(intent);

Полный пример

Перед тем как запустить Яндекс.Навигатор, стоит проверить, установлено ли приложение на устройстве. Если запускаемое приложение не установлено, вызов метода startActivity приведет к остановке вашего приложения.

Проверить, установлено ли необходимое приложение, можно с помощью метода queryIntentActivities класса PackageManager. Если Яндекс.Навигатор не установлен, можно открыть его страницу в Google Play.

Ниже приведен полный пример запуска Яндекс.Навигатора:

Uri uri = Uri.parse("yandexnavi://");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
intent.setPackage("ru.yandex.yandexnavi");

// Проверяет, установлено ли приложение.
PackageManager packageManager = getPackageManager();
List<ResolveInfo> activities = packageManager.queryIntentActivities(intent, 0);
boolean isIntentSafe = activities.size() > 0;
if (isIntentSafe) {

//Запускает Яндекс.Навигатор.
  startActivity(intent);
} else {

// Открывает страницу Яндекс.Навигатора в Google Play.
  intent = new Intent(Intent.ACTION_VIEW);
  intent.setData(Uri.parse("market://details?id=ru.yandex.yandexnavi"));
  startActivity(intent);
}

В этом разделе в качестве примера используется URL, состоящий только из схемы. Такой URL позволяет показать пользователю его текущее местоположение. В разделе Формат URL описано как:

Построить маршрут из точки A в точку Б

Построить маршрут из текущей точки

Построить маршрут по нескольким точкам

Найти объекты на карте

Показать точку на карте