使用 Waze Deep Links

Waze 支援使用 API,讓開發人員能透過外部網址開啟 Waze 用戶端應用程式或網頁。該網址可從其他的行動應用程式或行動網頁上存取。

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),或啟動 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>