GOOGLE ADS

mercredi 27 avril 2022

L'URL multiplateforme de Google Maps ne parvient pas à charger l'itinéraire sur Android après la "navigation dans l'application"

J'ai une application Angular 9 + Ionic 5, déployée en tant qu'applications PWA, Android et IOS.
Nous utilisons l'URL universelle et multiplateforme de Google pour lancer Google Maps, comme décrit ici: https://developers.google.com/maps/documentation/urls/get-started

Fonction ouvrir un emplacement dans google maps :

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();
};

Cela fonctionne bien dans les applications PWA et IOS, mais sous Android, une fois l'adresse chargée dans le navigateur comme prévu, il ne parvient pas à lancer la navigation après avoir pris en charge l'emplacement de départ dans le planificateur d'itinéraire et appuyé sur "IN APP NAVIGATION". (Il en va de même si je fournis le lien avec les directions pour démarrer la navigation automatiquement).

Erreur affichée après avoir appuyé sur "IN APP NAVIGATION" :
la page Web à l'adresse 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-wv-msc&mt=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,10.958954/@49.9145812,10.9626145,8z/data%253D!4m2!4m1! 3e0!11m1!6b1%3Fentry%253Dml&min_version%3D914018424;end; n'a pas pu être chargé car :

net:: ERR_UNKNOWN_URL_SCHEME

Est-ce que quelqu'un a une idée de ce qui s'est mal passé ici? La syntaxe de l'URL doit être correcte, mais il semble que l'intention de Google Maps charge un schéma inconnu sur Android.


Solution du problème

Résolu ! Le problème étaitwindow.open(url, '_top').focus();

Ces liens doivent être utilisés avectarget: _system.

Et en cas d'application Ionic hybride, le plugin suivant est également recommandé !
https://ionicframework.com/docs/native/in-app-browser

Aucun commentaire:

Enregistrer un commentaire

Comment utiliseriez-vous .reduce() sur des arguments au lieu d'un tableau ou d'un objet spécifique ?

Je veux définir une fonction.flatten qui aplatit plusieurs éléments en un seul tableau. Je sais que ce qui suit n'est pas possible, mais...