如何将waze.to加密链接转换为新版Deep Link以启动导航?
我来帮你解决这个Waze Deeplink的问题——我之前也碰到过类似的情况,那个hsv9hc540y其实是Waze的共享位置ID,不是直接的导航参数,咱们可以通过两种方式把它转换成能直接启动导航的新版Deep Link:
方案1:后端解析共享ID获取经纬度(推荐稳定方案)
Waze有一个未公开但长期可用的内部API,可以用来解析共享位置ID对应的经纬度:
- 后端向这个地址发起GET请求:
https://www.waze.com/live-map/api/geotag?location=li:hsv9hc540y(把hsv9hc540y替换成你的目标ID) - 接口会返回JSON格式的数据,其中
location字段包含lat(纬度)和lon(经度) - 拿到经纬度后,用新版Waze Deep Link格式构造导航链接:
waze://?ll=<纬度>,<经度>&navigate=yes
比如解析后得到纬度37.7749、经度-122.4194,最终链接就是waze://?ll=37.7749,-122.4194&navigate=yes - 用户点击这个链接时,移动端浏览器会直接唤起Waze并启动到目标位置的导航
这个方案的优势是稳定,因为API接口是Waze内部服务依赖的,改动概率低;而且后端请求不存在跨域问题,适合大多数场景。
方案2:前端利用页面重定向提取参数(纯前端应急方案)
如果你的场景只能用纯前端实现,可以利用Waze共享页面的自动重定向特性:
- 当用户点击旧的
http://waze.to/li/hsv9hc540y链接时,先在前端打开这个页面(可以用隐藏的iframe或者弹窗) - 监听这个页面的重定向行为,Waze的共享页面会自动跳转到包含经纬度的Waze Deeplink,格式类似
waze://?ll=37.7749,-122.4194&navigate=yes - 提取出这个链接里的经纬度,再构造最终的导航链接并引导用户跳转
不过这个方案有个缺点:它依赖Waze共享页面的前端逻辑,一旦Waze修改页面结构或重定向规则,就会失效,所以只适合应急场景。
最后要提醒:不管用哪种方案,一定要测试移动端的唤起效果,不同系统(iOS/Android)对Deeplink的处理略有差异,确保waze://协议能被正确识别。
内容的提问来源于stack exchange,提问作者Offir
相关产品推荐
相关产品推荐

