使用 Waze Deep Links

Waze 支持让开发者能够通过外部网址打开 Waze 客户端应用或网页的 API,这里提到的外部网址可以通过其他移动应用或移动网页访问。

使用 Waze Deep Links 的基本网址如下:

https://waze.com/ul

然后,取决于您传递给此网址的参数,Waze 应用可以定位地址,在地图上标记地址,或是启动前往某个地址或目的地的导航会话。

Deep Links 的工作原理

Waze 是作为客户端应用还是网页打开,取决于用户的系统配置:

  • 桌面设备:Waze 作为网页打开
  • 移动设备(已安装 Waze 应用):Waze 应用打开
  • 移动设备(未安装 Waze 应用):Waze 作为网页打开

如果您确定已安装 Waze 应用,可以使用网址“waze://”进行应用到应用通信,而无需打开网页。这个网址取代了上面介绍的基本网址。请仅在确定您的用户已安装 Waze 的情况下使用此选项;否则,用户点击该链接不会有任何反应。

使用 Waze Deep Links

您可以通过以下网址,使用第三方应用、电子邮件、短信、网页链接或其他来源的参数启动 Waze。

Waze Deep Links 使用以下网址:

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

以下是一些常见的 Waze Deep Links 任务。

导航到地理位置

要导航到特定地理位置,请按以下步骤操作:

  1. 打开 Waze 实时地图,在搜索栏中搜索您的位置,或者放大并点击地图的特定区域。
  2. 点击地图右下角的分享图标
  3. 此时应会弹出一个窗口。点击“分享行车路线”,复制并粘贴链接。

示例

以下示例将纽约时代广场设为地图的中心:

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

导航到收藏夹

您可以导航到 Waze 应用中保存的以下收藏夹:

  • work
  • home

使用以下网址导航到指定收藏夹:

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

以下示例将目的地设置为“单位”:

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

搜索

使用以下句法规则搜索地址。

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

您为参数传递的值必须经过网址编码。例如,您必须用 %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

组合使用参数

通过使用“&”分隔名称/值对,您可以在同一网址中将参数组合使用。以下示例展示了如何使用参数组合:

  • 使地图以 Maryhill 为中心并将缩放级别设置为 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

示例

本节提供了在 Android 和 iOS 平台上使用 Waze Deep Links API 的示例。

Android 示例

如果已安装 Waze,以下代码段示例会启动 Waze 以查找指定位置。如果未安装 Waze,则会在 Google Play 中打开 Waze 页面:

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 示例

如果已安装 Waze,以下代码段示例会导航到纬度/经度坐标;如果未安装 Waze,则会启动 App Store 来安装 Waze:

- (void) navigateToLatitude:(double)latitude longitude:(double)longitude
{
  if ([[UIApplication sharedApplication]
    canOpenURL:[NSURL URLWithString:@"waze://"]]) {
      // Waze is installed. Launch Waze and start navigation
      NSString *urlStr =
        [NSString stringWithFormat:@"https://waze.com/ul?ll=%f,%f&navigate=yes",
        latitude, longitude];
      [[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>