Запуск приложения Яндекс Навигатор
Мобильное приложение Яндекс Навигатор можно запускать из других мобильных приложений и со страниц сайтов.
В этом документе описаны способы запуска приложения на платформах Android и iOS.
Запуск из браузера
Чтобы запустить Яндекс Навигатор со страницы, отображаемой в браузере, необходимо сформировать HTML‑ссылку, в которой используется URL-схема yandexnavi
.
<a href="yandexnavi://">Открыть Яндекс Навигатор</a>
Когда пользователь мобильного устройства переходит по такой гиперссылке, открывается приложение Яндекс Навигатор.
Запуск из нативного приложения
Чтобы запустить Яндекс Навигатор из Java‑приложения:
-
Создайте объект типа
Intent
. В конструктор передайте действие ACTION_VIEW и URL, содержащий схемуyandexnavi
.Uri uri = Uri.parse("yandexnavi://"); Intent intent = new Intent(Intent.ACTION_VIEW, uri);
-
Вызовите метод
setPackage
, в качестве аргумента передайте название пакетаru.yandex.yandexnavi
.intent.setPackage("ru.yandex.yandexnavi");
Примечание
Пакет указывается, чтобы обработку объекта
Intent
выполнило приложение Яндекс Навигатор. Если не указать пакет, операционная система самостоятельно определит, установлены ли на устройстве приложения, которые могут обработатьIntent
. Если таких приложений несколько, пользователю будет предложено выбрать, какое из них открыть. -
Вызовите метод
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 в точку Б
Построить маршрут из текущей точки