Sono molteplici le applicazioni per Windows Phone che sfruttano la posizione dell'utente per fornire informazioni geo localizzate, per cercare locali, oppure per mostrare mappe. Una caratteristica che accumuna queste applicazioni è caratterizzata dal fatto che tutte implementano, in vari modi, la possibilità di calcolare l'itinerario per guidare l'utente alla destinazione. Questo presenta molti svantaggi:
- Per lo sviluppatore che deve implementare la mappa e le chiamate a servizi di routing;
- Per il consumatore che spesso si ritrova con una brutta esperienza di navigazione senza indicazioni turn by turn
In Windows Phone 8 però, vengono in aiuto gli activation protocol, i quali permettono alle applicazioni di registrarsi a specifici protocolli, mentre ad altre applicazioni di lanciare URI sulla base dei protocolli. Nel caso della navigazione turn by turn, il sistema prevede che un'app si possa registrare per il protocollo ms-drive-to o ms-walk-to per permettere all'utente di navigare ad una specifica destinazione. Questo protocollo è implementato, per esempio, da Nokia Drive, perciò con poco sforzo, nelle nostre applicazioni, possiamo utilizzarlo per avviare la navigazione verso un indirizzo specifico.
Nell'esempio è mostrato come formattare correttamente l'URI da lanciare attraverso l'API Launcher di WinRT.
double latitude = 45.468935; double longitude = 9.181024; string name = "Milano"; var c = CultureInfo.InvariantCulture; // Formatto usando i punti e non le virgole Uri uri = new Uri( String.Format(c, "ms-drive-to:?destination.latitude={0}&destination.longitude={1}&destination.name={2}", latitude, longitude, WebUtility.UrlEncode(name))); Launcher.LaunchUriAsync(uri);
In questo modo l'utente utilizza il suo navigatore preferito per raggiungere la destinazione. Se dispone di più applicazioni agganciate al medesimo protocollo, il sistema chiede all'utente quale applicazione lanciare. Se, invece, l'utente non dispone di un'applicazione, il sistema propone una lista di possibili applicazioni dello Store che lo implementano.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Creare un'applicazione React e configurare Tailwind CSS
Effettuare lo stream della risposta in ASP.NET Core tramite IAsyncEnumerable
Usare lo spread operator con i collection initializer in C#
Esportare ed analizzare le issue di GitHub con la CLI e GraphQL
Generare la software bill of material (SBOM) in GitHub
Installare le Web App site extension tramite una pipeline di Azure DevOps
Sfruttare MQTT in cloud e in edge con Azure Event Grid
Ordinare randomicamente una lista in C#
Generare HTML a runtime a partire da un componente Razor in ASP.NET Core
Utilizzare i primary constructor di C# per inizializzare le proprietà
Hosting di componenti WebAssembly in un'applicazione Blazor static
Effettuare il binding di date in Blazor
I più letti di oggi
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Windows Server 2003 SP1 Italiano
- Creare un modulo e un controller con AngularJS
- Build 2014: tutte le novità per gli sviluppatori in diretta da San Francisco
- Rilasciata la versione RTM di Windows Vista SP1