Cambiare la startup page nelle applicazioni WP7

Sto modificando la mia app per WP7 che riporta le previsioni dell’Osmer del Friuli Venezia Giulia.

Essendo una applicazione che recupera in tempo reale le informazioni dal sito, mi sono trovato a gestire il caso della mancanza di connettività.

La prima (brutta) soluzione è stata intercettare alla apertura della View principale l’assenza di connettività e mostrare un messaggio all’utente prima di… lasciare “crashare elegantemente” l’applicazione Perplesso

Con la prossima versione l’utente, in mancanza di una qualsiasi connettività, verrà re-diretto al una View che gli notificherà il problema, altrimenti aprirà la View principale.

Come fare tutto questo:

1) Nel “WMAppManifest.xml” bisogna cambiare la NavigationPage verso una inesistente pagina:

    <Tasks>
      <DefaultTask Name="_default" NavigationPage="DummyPage.xaml" />
    </Tasks>

2) Nel costruttore della app aggiungo una chiamata alla routine di redirezione:

        /// <summary>
        /// Constructor for the Application object.
        /// </summary>
        public App()
        {
            // Global handler for uncaught exceptions. 
            UnhandledException += Application_UnhandledException;

            // Standard Silverlight initialization
            InitializeComponent();

            // Phone-specific initialization
            InitializePhoneApplication();

            ManageStartPageRedirection();

           // .... 

3) Questa è la routine che gestisce la re-direzione utilizzando l’UriMapper:

        private void ManageStartPageRedirection()
        {
            var mapper = new UriMapper();
            string uriString = string.Empty;
            if (PhoneUtility.HasInternetConection)
            {
                uriString = "/Views/MainPage.xaml";
            }
            else
            {
                uriString = "/Views/NoConnectionPage.xaml";
            }
            mapper.UriMappings.Add(new UriMapping
            {
                Uri = new Uri("/DummyPage.xaml", UriKind.Relative),
                MappedUri = new Uri(uriString, UriKind.Relative)
            });
            this.RootFrame.UriMapper = mapper;
        }

4) Per completezza la verifica della connettività viene fatta con la seguente riga di codice Occhiolino

    public class PhoneUtility
    {
        public static bool HasInternetConection
        {
            get
            {
                return (NetworkInterface.NetworkInterfaceType != NetworkInterfaceType.None);
            }
        }
    }

Se intanto volete provare la app e lasciare qualche feedback, la cosa sarà ben accetta. Occhiolino

Update: mi sono dimenticato di menzionare la fonte di cotale inspirazione (mica avrete pensato che fosse farina del mio sacco vero? A bocca aperta )… eccola qui.

Tag di Technorati: ,,

posted @ domenica 15 luglio 2012 03:17

Print

Comments on this entry:

# Cambiare la startup page nelle applicazioni Windows Phone con Caliburn

Left by DDL at 04/06/2013 02:16
Gravatar
Cambiare la startup page nelle applicazioni Windows Phone con Caliburn
Comments have been closed on this topic.
«novembre»
domlunmarmergiovensab
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567