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

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

В этом документе описаны способы запуска приложения на платформах 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);
}

Чтобы запустить Яндекс Навигатор из приложения на Objective‑C, отправьте сообщение openURL: объекту класса UIApplication.

В сообщении передайте URL, содержащий схему yandexnavi.

[[UIApplication sharedApplication] openURL:
 [NSURL URLWithString:@"yandexnavi://"]];

Перед тем как запустить Яндекс Навигатор, стоит проверить, установлено ли приложение на устройстве. Для этого можно использовать метод canOpenURL. Если Яндекс Навигатор не установлен, можно открыть его страницу в App Store.

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

if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"yandexnavi://"]]) {
   [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"yandexnavi://"]];
} else {

// Открывает страницу приложения Яндекс Навигатор в App Store.
   [[UIApplication sharedApplication] openURL:
    [NSURL URLWithString:@"https://itunes.apple.com/ru/app/yandex.navigator/id474500851"]];
}

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

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

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

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

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

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

Следующая