Dopo il rilascio di Windows Phone 7, sia gli utenti che gli sviluppatori poi hanno richiesto a gran voce una maggiore integrazione delle applicazioni con il sistema operativo.
In passato, lo sviluppatore poteva integrare la propria applicazione solo con la parte multimediale del sistema operativo; oggi, con l'arrivo di Windows Phone, viene aggiunto un nuovo hub, chiamato Search, attraverso il quale è possibile fare in modo che la nostra applicazione interagisca con i risultati di una ricerca prodotti da Bing.
In modo del tutto analogo agli altri punti di integrazione ed estensioni delle funzioni del sistema operativo, è necessario modificare il file manifiest WMAppManifest.xml:
<Extensions> <Extension ExtensionName="Bing_Products_Video_Games" ConsumerID="{5B04B775-356B-4AA0-AAF8-6491FFEA5661}" TaskID="_default" ExtraFile="Extensions\\Extras.xml" /> </Extensions>
Nel frammento di codice precedente possiamo vedere le quattro proprietà che servono per la registrazione. Analizziamole in dettaglio:
- ExtensionName: questa proprietà indica per quale tipo di ricerca registrare la nostra applicazione. nel nostro caso l'applicazione venga sfruttata per le ricerche che riguardano video giochi, è possibile trovare una lista completa al seguente indirizzo: http://msdn.microsoft.com/en-us/library/hh202958(VS.92).aspx
- ConsumerID: rappresenta il codice dell'estensione; nel caso della ricerca l'id è sempre 5B04B775-356B-4AA0-AAF8-6491FFEA5661;
- TaskID: rapprenseta il task; di solito _default;
- ExtraFile: indica il percorso del file Extras, che deve trovarsi sempre nella cartella Extensions e chiamarsi Extras.
- Il file Extras contiene le informazioni riguardanti la nostra applicazione e si presenta in questa forma:
<?xml version="1.0" encoding="utf-8" ?> <ExtrasInfo> <AppTitle> <default>Product Results</default> <it-IT>Risultati</it-IT> </AppTitle> <!-- Search-related captions --> <Consumer ConsumerID="{5B04B775-356B-4AA0-AAF8-6491FFEA5661}"> <!-- Computer products caption --> <ExtensionInfo> <Extensions> <ExtensionName>Bing_Products_Video_Games</ExtensionName> </Extensions> <CaptionString> <default>Search games</default> <it-IT>Ricerca video giochi</it-IT> </CaptionString> </ExtensionInfo> </Consumer> </ExtrasInfo>
La proprietà AppTile contiene il nome dell'applicazione e l'eventuale versione localizzata, mentre ConsumerID identifica l'estensione ed ExtensionName il tipo di ricerca inerente la nostra applicazione. Infine, CaptionString contiene l'etichetta da visualizzare e l'eventuale versione localizzata.
Quando la nostra applicazione viene lanciata dalla pagina di ricerca, questo avviene attraverso un URI che ha il seguente formato:
app://<AppID>/_default#/SearchExtras?ProductName=<product_name>&Category=<extension_names>
E' necessario preparare la nostra applicazione a riceve e gestire questo tipo di URI; è possibile farlo utilizzando la classe UriMapper e modificando il file App.xaml, come di seguito:
<nav:UriMapper x:Key="UriMapper"> <nav:UriMapper.UriMappings> <nav:UriMapping Uri="/SearchExtras" MappedUri="/Search.xaml"/> </nav:UriMapper.UriMappings> </nav:UriMapper>
Nel seguente frammento di codice è possibile vedere le impostazioni relative all'UriMapper inserite nella collezione Resorces dell'applicazione.
Per terminate, non ci rimane che gestire i paramenti provenienti in querystring, cosa che possiamo fare dal codice della pagina Search.xaml.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Sfruttare i KeyedService in un'applicazione Blazor in .NET 8
Migliorare i tempi di risposta di GPT tramite lo streaming endpoint in ASP.NET Core
Gestire i dati con Azure Cosmos DB Data Explorer
Change tracking e composition in Entity Framework
Cambiare la chiave di partizionamento di Azure Cosmos DB
Gestione dei nomi con le regole @layer in CSS
Creare una libreria CSS universale: Cards
Le novità di Angular: i miglioramenti alla CLI
Rinnovare il token di una GitHub App durante l'esecuzione di un workflow
Usare una container image come runner di GitHub Actions
Aggiungere interattività lato server in Blazor 8
Filtrare i dati di una QuickGrid in Blazor con una drop down list
I più letti di oggi
- Effettuare il download di un file via FTP con la libreria FluentFTP di .NET
- Debug di app .NET tramite snapshot con Application Insight
- Utilizzare le Fullscreen API di HTML5 in IE11
- Proteggere l'accesso ad una Azure Web e API App tramite Google
- Utilizzare .NET Core con le Azure Function
- Effettuare il redirect da HTTP a HTTPS con la Azure CDN
- Creare un package MTS con uno script ASP
- Autenticazione con Minimal API di ASP.NET Core 6
- Routing HTTP con i proxy delle Azure Function
- Convidere una share di rete tra VM di Azure