如何使用 Waze 深层链接

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

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

https://waze.com/ul

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

深层链接的运作方式

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

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

如果您确定已安装 Waze 应用,则可以使用网址“waze://”进行应用到应用通信,而无需 Web 体验。此网址将取代上述基准网址。仅当您确定用户已安装 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

以下示例将目的地设置为工作:

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

添加 utm_source

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

示例

本部分提供了有关如何在 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 的情况下导航到 lat/lon;否则,它会启动 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>