Realizzare un UriMapper in Windows Phone

di , in Windows Phone,

Le applicazioni Windows Phone riprendono il modello di navigazione tra le pagine introdotto da Silverlight: l'utente può visualizzare il contenuto delle pagine e navigante tra esse, come se fosse in un browser.
La corrispondenza tra l'Uri e il file fisico, ovvero la pagina XAML, avviene mediante un componente particolare, chiamato UriMapper.
Ci sono casi, però, in cui realizzarne un UriMapper custom è indispensabile: ad esempio, quando dobbiamo fornire la nostra logica di rooting ed indirizzare l'utente a pagine differenti, in base ad un parametro presente nell'Uri.

Creare un UriMapper è semplicissimo: ci basta estendere la classe UriMapperBase.

class MyUriMapper : UriMapperBase
{
    private string tempUri;

    public override Uri MapUri(Uri uri)
    {
        tempUri = uri.ToString();

        // controllo il contenuto dell?uri
        if (tempUri.Contains("ViewfinderLaunch"))
        {
            // restituisco l?uri appropriato
            return new Uri("/myView.xaml", UriKind.Relative);
        }

         // altrimenti non faccio nessun cambiamento
        return uri;
    }
}

Creata la classe, dobbiamo eseguire l'ovveride del motodo MapUri. Il codice all'intero del metodo è semplice: recuperato l'Uri, controlliamo il contenuto, se utile all'applicazione, e modifichiamo l'Uri effettivamente restituito.

Creata la classe, non ci resta che modificare il file App.xaml.cs. Dobbiamo identificare la parte di inizializzazione e aggiungere la seguente riga:

RootFrame.UriMapper = new MyUriMapper();

Personalizzare il rooting degli Uri ci permette di controllare in modo semplice ed efficace le pagine visualizzate dall'applicazione, oltre a gestire scenari in cui cambiamo nome ad una pagina e vogliamo continuare a mantenere i meccanismi di navigazione (ad esempio, perché gli Uri arrivano da notifiche di tipo push).

Commenti

Visualizza/aggiungi commenti

Realizzare un UriMapper in Windows Phone (#96)
| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi