Tra le funzionalità presenti in Windows Phone 8, è presente la possibilità di lanciare app di terze parti direttamente dalla camera, opportunità resa ancora più facile nell'ultimo aggiornamento nominato Amber, poiché permette di impostare l'applicazione predefinita da lanciare alla pressione del pulsante fotocamera.
Questo tipo di app, nominate lens app, sono caratterizzate dal fatto che sfruttano la fotocamera e per supportare questa caratteristica lo sforzo da fare è minimo. Prima di tutto dobbiamo creare un'icona da mostrare nella lista delle lens app. L'icona va creata nelle tre dimensioni supportate dall'app nominando ogni rispettivo file nel seguente modo: Lens.Screen-WVGA.png, Lens.Screen-720p.png, Lens.Screen-WXGA.png.
Creata l'icona, dobbiamo modificare manualmente il file WMAppManifest.xml inserendo nella sezione Extensions la seguente voce, senza alcuna modifica:
<Extensions> <Extension ExtensionName="Camera_Capture_App" ConsumerID="{5B04B775-356B-4AA0-AAF8-6491FFEA5631}" TaskID="_default" /> </Extensions>
Fatto questo troveremo l'app tra quelle disponibili nella camera. Quando l'utente preme sull'icona l'app verrà lanciata (o ripristinata se abbiamo supportato il fast app resume) lanciando la pagina principale ponendo in query string la voce Action=ViewfinderLaunch. E' opportuno gestire questo parametro per far sì che all'utente venga mostrata la camera. Se la pagina principale lo fa già, possiamo ignorare il parametro, in caso contrario invece, dobbiamo rimandare l'utente alla pagina specifica della camera. Il metodo più comodo si basa sull'uso dell'UriMapperBase, classe con la quale possiamo decidere l'Uri di navigazione a fronte dell'Uri originale. Dobbiamo quindi creare una nostra classe come nell'esempio seguente:
class LensUriMapper : UriMapperBase { private string tempUri; public override Uri MapUri(Uri uri) { // Guardo se attivato da lens if (uri.ToString().Contains("Action=ViewfinderLaunch")) { // Lancio la pagina con la camera return new Uri("/cameraPage.xaml", UriKind.Relative); } // Otherwise perform normal launch. return uri; } }
A questo punto possiamo istruire il RootFrame, inizializzato nell'App.xaml.cs, come nell'esempio.
// ... RootFrame.Navigated += CompleteInitializePhoneApplication; // Assegno il mapper RootFrame.UriMapper = new LensUriMapper();
Raccomandiamo infine di visionare le guide line consigliate da Microsoft per creare una lens app ottimale.
http://msdn.microsoft.com/en-us/library/windowsphone/design/jj662922(v=vs.105).aspx
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Migliorare l'organizzazione delle risorse con Azure Policy
Introduzione ai web component HTML
Creare una libreria CSS universale: Clip-path
Triggerare una pipeline su un altro repository di Azure DevOps
Utilizzare Azure Cosmos DB con i vettori
.NET Conference Italia 2024
Filtrare i dati di una QuickGrid in Blazor con una drop down list
Referenziare un @layer più alto in CSS
Usare i settings di serializzazione/deserializzazione di System.Text.Json di ASP.NET all'interno di un'applicazione non web
Eseguire query in contemporanea con EF
Rendere i propri workflow e le GitHub Action utilizzate più sicure
Sfruttare GPT-4o realtime su Azure Open AI per conversazioni vocali
I più letti di oggi
- Ricavare l'indirizzo completo della pagina che esegue lo script
- Tutorial ASP.NET
- Windows 7 Installation Fest - Roma, Firenze
- Container & DevOps Day - Online
- .NET Conference Italia 2021 - Online
- .NET Conference Italia 2022 - Milano e Online
- SQL Server 2008 February CTP
- Mono 0.12: verso una nuova implementazione di ASP.NET
- Tutto per portarsi ASP.NET 4.0, Silverlight 4.0 e .NET Framework 4.0 sotto l'ombrellone