Raramente le applicazioni più interessanti rimangono circoscritte al dispositivo su cui sono installate: come abbiamo spiegato nel capitolo 2, il vero e proprio trampolino di lancio per la diffusione degli smartphone come dispositivo per le masse è stata la disponibilità di una connessione stabile a Internet, tramite la quale fare in modo che il terminale fosse in costante collegamento con il mondo esterno e con i servizi offerti dalla rete. Nel seguito del libro vedremo come effettuare invocazioni a servizi esterni e quali sono le implicazioni che l'esecuzione su un dispositivo Windows Phone comporta; nel giro di poche pagine saremo in grado di realizzare la nostra prima applicazione in grado di interfacciarsi con il web: un browser personalizzato, come quello in figura 4.14.
Lo XAML necessario per descriverne l'interfaccia è molto semplice e ha il suo cuore pulsante nel codice dell'esempio che segue, in particolare nell'utilizzo del controllo WebBrowser.
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="*" /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <TextBlock VerticalAlignment="Center">Url</TextBlock> <TextBox x:Name="url" InputScope="Url" Grid.Column="1" /> <Button Grid.Column="2" Click="Button_Click" Content="Vai!" /> <phone:WebBrowser x:Name="browser" Grid.Row="1" Grid.ColumnSpan="3" /> </Grid>
Esso è il primo oggetto che incontriamo specificatamente pensato per Windows Phone, appartiene all'assembly Microsoft.Phone.Controls e include tutta la logica per visualizzare pagine HTML, siano esse provenienti da indirizzi di rete o salvate localmente nel dispositivo.
Nel nostro caso, una volta che l'utente ha digitato l'indirizzo nel TextBox, non dobbiamo far altro che gestire il clic sul Button per avviare la navigazione verso la pagina richiesta, come nell'esempio:
private void Button_Click(object sender, RoutedEventArgs e) { this.browser.Navigate(new Uri(this.url.Text, UriKind.Absolute)); }
Tramite il metodo Navigate si avvia la richiesta verso la risorsa definita tramite l'Uri. Nella nostra applicazione, probabilmente esso punterà a un indirizzo remoto, ma è possibile comunque referenziare anche un file HTML salvato localmente, ad esempio nell'isolated storage (parleremo in maniera più estesa di questo concetto nel capitolo 8), e utilizzare WebBrowser per mostrarla a video.
Questo script è tratto dal libro 'Sviluppare applicazioni per Windows Phone':
http://books.aspitalia.com/Windows-Phone/
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Load test di ASP.NET Core con k6
Visualizzare le change sul plan di Terraform tramite le GitHub Actions
Eseguire attività pianificate con Azure Container Jobs
Miglioramenti nelle performance di Angular 16
Autenticarsi in modo sicuro su Azure tramite GitHub Actions
Utilizzare database e servizi con gli add-on di Container App
Utilizzare politiche di resiliency con Azure Container App
Code scanning e advanced security con Azure DevOps
Utilizzare Model as a Service su Microsoft Azure
Supportare il sorting di dati tabellari in Blazor con QuickGrid
Utilizzare il trigger SQL con le Azure Function
Applicare il versioning ai nostri endpoint ASP.NET Core Minimal API
I più letti di oggi
- C# 4
- Spaziatura tra i caratteri in Silverlight 5
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Segui in tempo reale il TechEd 2004
- da oggi è possibile fare login velocemente con LinkedIn e Google. a questi si aggiunge il supporto già attivo per Facebook, Twitter, Microsoft Account, Windows Hello e OpenID, per darvi sempre più possibilità di accedere semplicemente alla nostra community! #aspitalia
- Migrare una service connection a workload identity federation in Azure DevOps
- Evitare postback multipli in un UpdatePanel