Как использовать глубокие ссылки Waze

Waze поддерживает API, который позволяет разработчикам открывать клиентское приложение Waze или веб-страницу по внешнему URL-адресу. Доступ к этому URL-адресу можно получить из другого мобильного приложения или мобильной веб-страницы.

Базовый URL-адрес для использования Waze Deep Links:

https://waze.com/ul

Затем приложение Waze может определить местоположение адреса, отметить его на карте или начать навигационную сессию к адресу или пункту назначения в зависимости от параметров, которые вы передадите этому URL-адресу.

Как работают глубокие ссылки

Зависит от конфигурации системы пользователя: будет ли Waze открываться как клиентское приложение или как веб-страница.

  • На компьютере : Waze открывается как веб-страница.
  • Мобильное устройство (и приложение Waze установлено): Приложение Waze открывается.
  • Мобильное устройство (и Waze не установлен): Waze открывается как веб-страница.

Если вы уверены, что приложение Waze установлено, вы можете использовать URL-адрес "waze://" для связи между приложениями без веб-интерфейса. Это заменяет базовый URL-адрес, описанный выше. Используйте этот вариант только в том случае, если вы уверены, что у ваших пользователей установлено приложение Waze; в противном случае, если пользователи нажмут на ссылку, ничего не произойдет.

Используйте глубокие ссылки Waze

Для запуска Waze с параметрами из стороннего приложения, электронной почты, SMS, ссылки на веб-страницу или другого источника можно использовать следующий URL-адрес.

Функция Waze Deep Links использует следующий URL:

https://waze.com/ul?param_name=value[&param_name=value]

Ниже перечислены некоторые распространенные задачи, выполняемые Waze с использованием функции Deep Links.

Чтобы перейти к определенному месту:

  1. Откройте приложение Waze Live Map и найдите свое местоположение. Вы можете ввести текст в поле поиска или увеличить масштаб и щелкнуть по определенному участку карты.
  2. Нажмите на значок «Поделиться». в правом нижнем углу карты.
  3. Появится диалоговое окно. Нажмите «Поделиться маршрутом» , затем скопируйте и вставьте ссылку.

Пример

В следующем примере карта центрирована на Таймс-сквер в Нью-Йорке:

https://www.waze.com/ul?ll=40.75889500%2C-73.98513100&navigate=yes&zoom=17

Вы можете перейти к следующим избранным местам, сохраненным в приложении Waze:

  • work
  • home

Для перехода к выбранному элементу из избранного используйте следующий URL-адрес:

https://waze.com/ul?favorite=favorite&navigate=yes

Следующий пример задает место назначения для работы:

https://waze.com/ul?favorite=work&navigate=yes

Найдите адрес, используя следующий синтаксис:

https://waze.com/ul?q=search_terms

Значения, передаваемые в качестве параметров, должны быть закодированы в формате URL. Например, пробелы необходимо заменить на %20 .

В следующем примере выполняется поиск по запросу "66 Acacia Avenue":

https://waze.com/ul?q=66%20Acacia%20Avenue

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

Для установки уровня масштабирования (или увеличения ) карты в Waze используйте следующий синтаксис:

https://waze.com/ul?z=magnification_level

Минимальное значение параметра magnification_level равно 6 (ближайшее или наибольшее увеличение). Максимальное значение параметра magnification_level равно 8192 (наибольшее или наименьшее увеличение).

В следующем примере уровень увеличения установлен на 8:

https://waze.com/ul?z=8

Объединить параметры

Параметры можно использовать вместе в одном URL-адресе, разделяя пары «имя-значение» символом «&». Следующие примеры показывают, как использовать комбинации параметров:

  • Чтобы центрировать карту на Мэрихилле и увеличить масштаб до 10:

    https://waze.com/ul?ll=45.6906304,-120.810983&z=10
  • Чтобы найти адрес и затем проложить к нему маршрут:

    https://waze.com/ul?q=66%20Acacia%20Avenue&ll=45.6906304,-120.810983&navigate=yes

Включить utm_source

Если вы включите параметр utm_source в свою реализацию, мы сможем связать использование с конкретными партнерами. Если возникнет проблема, влияющая на интеграцию, utm_source позволит нам связаться с партнером и обеспечить ему более качественное взаимодействие. Подробнее см. пример для iOS . Если у вас возникнут какие-либо проблемы, не стесняйтесь обращаться к нам .

Примеры

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

Пример для Android

Приведенный ниже фрагмент кода запускает Waze для поиска указанного местоположения, если Waze установлен. Если Waze не установлен, открывается страница Waze в Google Play:

try {
  // Launch Waze to look for Hawaii:
  String url = "https://waze.com/ul?q=Hawaii";
  Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
  startActivity(intent);
} catch (ActivityNotFoundException ex) {
  // If Waze is not installed, open it in Google Play:
  Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=com.waze"));
  startActivity(intent);
}

пример для iOS

Приведенный ниже фрагмент кода перенаправляет пользователя на адрес lat/lon, если приложение Waze установлено; в противном случае он запускает App Store для установки Waze:

- (void) navigateToLatitude:(double)latitude longitude:(double)longitude
{
  if ([[UIApplication sharedApplication]
    canOpenURL:[NSURL URLWithString:@"waze://"]]) {
      NSString *bundleIdentifier = NSBundle.mainBundle.bundleIdentifier;
      // Waze is installed. Launch Waze and start navigation
      NSString *urlStr =
        [NSString stringWithFormat:@"https://waze.com/ul?ll=%f,%f&navigate=yes&utm_source=%s",
        latitude, longitude, bundleIdentifier];
      [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlStr]];
  } else {
    // Waze is not installed. Launch AppStore to install Waze app
    [[UIApplication sharedApplication] openURL:[NSURL
      URLWithString:@"http://itunes.apple.com/us/app/id323229106"]];
  }
}

При компиляции с использованием iOS SDK 9.0 и более поздних версий необходимо обновить файл списка свойств вашего приложения, добавив в него следующие данные, чтобы включить Waze:

<key>LSApplicationQueriesSchemes</key>
<array>
  <string>waze</string>
</array>