在“应用内导航”后,Google Maps跨平台URL无法在Android上加载路线

问题描述

我有一个Angular 9 + Ionic 5应用程序,已部署为PWA,Android和IOS应用程序。
我们使用Google的通用跨平台URL来启动Google Maps, 如此处所述:https://developers.google.com/maps/documentation/urls/get-started

功能在Google地图中打开位置:

export const openMaps = (lat: number,lng: number) => {
  const url = `https://www.google.com/maps/search/?api=1&query=${lat}%2C${lng}`;
  return window.open(url,'_top').focus();
};

这在PWA和IOS应用程序中工作正常,但是在Android中按预期方式将地址加载到浏览器中之后,在支持路线规划器中的起始位置并点击“应用内导航”后,它无法启动导航。 (如果我提供了带有“方向”的链接自动开始导航,也会发生这种情况。)

点击“应用内导航”后显示错误
该网页位于intent://maps.app.goo.gl/?link = https://www.google.com/maps/dir//50.253722,10.958954/@49.9145812,10.9626145,8z/data%3D!4m2! 4m1!3e0!11m1!6b1?entry%3Dml&apn = com.google.android.apps.maps&amv = 914018424&isi = 585027354&ibi = com.google.Maps&ius = comgooglemapsurl&utm_campaign = ml_promo&ct = ml-nav-nopromo-dr-nlu- 8&pt = 9008&efr = 1#Intent; package = com.google.android.gms; scheme = https; S.browser_fallback_url = https://play.google.com/store/apps/details%3Fid%3Dcom.google.android。 apps.maps&pcampaignid%3dfdl_long&url%3Dhttps://www.google.com/maps/dir//50.253722,8z/data%253D!4m2!4m1!3e0!11m1!6b1%3Fentry%253Dml&min_version% 3D914018424;结束;无法加载,因为:

net :: ERR_UNKNowN_URL_SCHEME

有人知道这里出了什么问题吗? URL语法应该正确,但似乎google maps intent在Android上加载了未知方案。

解决方法

解决了!问题是window.open(url,'_top').focus();

这些链接应与target: _system.

一起使用

在混合离子应用程序的情况下,还建议使用以下插件! https://ionicframework.com/docs/native/in-app-browser