PhoneGap è un framework per costruire applicazioni native utilizzando HTML5, che è disponibile anche per Windows Phone.
Una volta scaricato, aggiunge un nuovo template di progetto a Visual Studio, all'interno del quale potremo creare la nostra soluzione. Poiché PhoneGap è un layer tra il nostro codice HTML e le funzionalità native, in certi scenari dobbiamo adattarci alle sue caratteristiche per poter implementare funzionalità native.
Un caso di questo tipo è quello relativo alla gestione della rotazione del dispositivo: essendo PhoneGap un layer tra la parte nativa e quella HTML, dovremo intercettare l'evento orientationchange attraverso un semplice codice JavaScript, per poi decidere cosa fare.
Ecco l'esempio, dove si può notare l'approccio utilizzato da PhoneGap:
<!DOCTYPE html>
<html>
<head>
...
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, maximum-scale=1.0, user-scalable=no;" />
<script type="text/javascript" src="phonegap-1.2.0.js"></script>
<script type="text/javascript"><!--
document.addEventListener("deviceready", onDeviceReady, false);
// in questo stato il device è pronto
function onDeviceReady()
{
// ci registriamo per l'evento orientationchange
window.addEventListener("orientationchange", onOrientationChange, true);
}
// gestiamo l'evento
function onOrientationChange(e) {
var orientation = "portrait";
// stabiliamo il tipo di orientamento
if (window.orientation == -90 || window.orientation == 90) orientation = "landscape";
// codice che applica le funzionalità specifiche per l'orientamento corrente
document.getElementById("orientation").innerHTML = orientation;
}
//--></script>
<body>
...
</body>
</html>Come si può notare, questo codice avrà l'effetto, quando ruotiamo l'emulatore (o il device) di scrivere a video la corrispondente rotazione corrente:

Link e riferimenti utili
Il nostro speciale sullo sviluppo web mobilehttps://www.aspitalia.com/focuson/1267/Speciale-Web-Mobile-Costruire-Applicazioni-ASP.NET-JQuery-Mobile.aspx
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Esporre un server MCP esistente con Azure API Management
Gestire gli errori nelle Promise JavaScript con try()
Integrare SQL Server in un progetto .NET Aspire
Montare Azure Blob Storage su Linux con BlobFuse2
Utilizzare l nesting nativo dei CSS
Utilizzare Containers in .NET Aspire
Simulare Azure Cosmos DB in locale con Docker
Fissare una versione dell'agent nelle pipeline di Azure DevOps
Disabilitare le run concorrenti di una pipeline di Azure DevOps
Utilizzare Container Queries nominali
Utilizzare l'espressione if inline in una pipeline di Azure DevOps
Loggare le query più lente con Entity Framework


