如何使用 Waze 深层链接

Waze 支持一项 API,开发者可以通过外部网址打开 Waze 客户端应用或网页。您可以在其他移动应用或移动网页中访问该网址。

使用 Waze 深层链接的基本网址为:

https://waze.com/ul

然后,Waze 应用可以根据您传递给此网址的参数,查找地址、在地图上标记地址,或开始导航到地址或目的地。

深层链接的工作原理

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

  • 桌面设备:Waze 以网页的形式打开。
  • 移动设备 (且已安装 Waze 应用):Waze 应用会打开。
  • 移动设备 (且未安装 Waze):Waze 以网页的形式打开。

如果您确定已安装 Waze 应用,则可以使用网址“waze://”进行应用间通信,而无需使用网页体验。此网址将取代上述基本网址。只有在确定用户已安装 Waze 的情况下,才应使用此选项;否则,如果用户点按该链接,系统不会执行任何操作。

使用 Waze 深层链接

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

Waze 深层链接使用以下网址:

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

以下是 Waze 深层链接的一些常见任务。

如需导航到特定地点,请执行以下操作:

  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

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

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

网址参数

下表介绍了可用于 Waze 深层链接的路由参数:

参数 是否必需? 说明
avoid_tolls 可选 指定是否计算避开收费站的路线。设置为 truet 可避开收费站。设置为 falsef 可允许走收费公路。默认设置为允许走收费公路 (false)。
avoid_ferries 可选 指定是否计算避开渡轮的路线。设置为 truet 可避开渡轮。设置为 falsef 可允许乘坐渡轮。默认设置为允许乘坐渡轮 (false)。
avoid_freeways 可选 指定是否计算避开高速公路的路线。设置为 truet 可避开高速公路。设置为 falsef 可允许走高速公路。默认设置为允许走高速公路 (false)。
avoid_dangerous_turns 可选 指定是否避开危险的转弯。设置为 truet 可避开危险的转弯。设置为 falsef 可允许危险的转弯。默认设置为避开危险的转弯 (true)。
avoid_trails 可选

指定未铺砌道路或小径的路线偏好设置。支持的值包括:

  • avoid_all(默认值):避开所有小径。
  • allow:允许走小径。
  • avoid_long:避开长小径。
vehicle_type 可选

指定车辆类型。支持的值包括:

  • private(默认值):客运车辆。
  • taxi:出租车。
  • motorcycle:摩托车。

组合参数

您可以在同一网址中一起使用这些参数,只需用“&”分隔名称值对即可。以下示例展示了如何组合使用这些参数:

  • 将地图中心设为 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

添加 utm_source

如果您在实现中添加了 utm_source,我们就可以将使用情况与 特定合作伙伴相关联。如果出现影响集成的任何问题,我们就可以通过 utm_source 与合作伙伴联系,并为他们提供更好的合作伙伴体验。如需了解更多 详情,请参阅iOS 示例。如果您遇到任何 问题,请随时 与我们联系

示例

本部分举例说明了如何在 Android 和 iOS 平台上使用 Waze 深层链接 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);否则,它会启动 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>