6

Sto sviluppando un'applicazione mobile utilizzando ASP.Net MVC per generare 5 pagine HTML. Le pagine HTML 5 utilizzeranno la loadPage di jQueryMobile per effettuare chiamate a ASP.Net MVC per caricare pagine nel DOM. Quindi utilizzerà la pagina delle modifiche di jQueryMobiles per rendere la pagina attiva nel DOM in base alle interazioni dell'utente con l'app. Le chiamate all'app MVC invocano diversi servizi Web per recuperare i dati di origine per costruire l'HTML.asp.net mvc, jquery mobile, best practice per l'architettura phonegap

Abbiamo intenzione di utilizzare PhoneGap con l'app in modo che possiamo inviare l'app finita agli store Apple e Android. La mia app non ha bisogno di interagire con le funzionalità native di un dispositivo (contatti, geolocalizzazione, ecc.) Poiché non è necessario interagire con il sistema operativo del dispositivo reale (eccetto per effettuare chiamate jQuery ajax all'app MVC), PhoneGap è davvero necessario? L'approccio che ho descritto sopra è un modo appropriato per rendere possibile un'app Web sui dispositivi mobili?

Poiché la mia applicazione è asp.net mvc e sarà ospitata sui miei server, cosa viene inviata agli store Android e Apple? È qui che entra in gioco PhoneGap? PhoneGap crea un eseguibile di qualche tipo inviato agli store di Android e Apple? Quindi questo eseguibile viene scaricato sui dispositivi client? Suppongo che l'eseguibile effettuerà quindi chiamate al sito MVC tramite URL per recuperare l'HTML dell'applicazione.

Sto guardando correttamente? Grazie per l'aiuto.

+0

non so perché la mia domanda è stata respinta. Ho fatto molte ricerche Ho bisogno di qualche chiarimento per favore. Ci sono così tante risorse diverse che ho letto che hanno diversi modi di fare le cose. Attraverso la mia ricerca penso di aver capito un approccio. Ho solo bisogno di una convalida delle mie supposizioni. –

risposta

5

PhoneGap (o qualche altro sostituto) non è del tutto necessario, ma molto utile per creare un pacchetto di app dalla sorgente HTML/JS/CSS. PhoneGap non crea l'eseguibile (l'IDE lo fa) ma è un framework di Java per la funzionalità JavaScript (che consente di eseguire codice Java dal tuo JavaScript).

PhoneGap avvolge fondamentalmente il codice HTML/JS/CSS site in un webview modo che il codice può essere interpretato dal browser del dispositivo (a volte in maniera più sabbia-scatola che correre il browser normalmente, per esempio pre-IOS-5 Le istanze webview non ricevono il motore Nitro JS in modo che funzionino più lentamente dei siti Web nel browser Mobile Safari).

È possibile creare il proprio webview se il proprio sito è così semplice da non utilizzare nessuna delle altre funzionalità di PhoneGap ma poiché è già cotto in PhoneGap e il dispositivo non dovrà scaricare PhoneGap. Potresti anche usare PhoneGap.

PhoneGap Build (https://build.phonegap.com/) è un programma che è possibile acquistare per creare e inviare i pacchetti di app agli app store Apple/Google/RIM/Windows. Generalmente usi solo il tuo IDE per farlo comunque. Ad esempio, per creare un'app iOS è necessario utilizzare un nuovo computer Apple (è necessario disporre della versione più recente del sistema operativo per creare le versioni più recenti dei pacchetti iOS). pacchetti di app iOS vengono creati in XCode, e IDE Eclipse è un ambiente molto comune per creare i pacchetti di applicazioni Android: http://developer.android.com/sdk/eclipse-adt.html

ho notato che ha detto che si sta utilizzando $.mobile.loadPage() per caricare le pagine nel DOM e $.mobile.changePage() per navigare l'utente a quelli pagine. Se usi semplicemente $.mobile.changePage(), prenderà automaticamente la pagina con loadPage(). Se si utilizza loadPage() di precaricare contenuti allora il check-out di jQuery Mobile prefetching abilità: http://jquerymobile.com/demos/1.1.0-rc.1/docs/pages/page-cache.html

UPDATE per il 2014

recente ho costruito alcune applicazioni che utilizzano Cordova 3.5 e il processo di generazione era molto così semplificata. Il processo di creazione dei pacchetti viene ora gestito tramite la console del sistema e tutto, dall'installazione dei plug-in alla ricostruzione di un pacchetto di applicazioni, è molto più semplice.

+0

Grazie per la risposta. Per quanto riguarda loadPage e changePage, jQueryMobile rimuove le pagine dal DOM quando mi allontano da esse come da documentazione. Poiché la pagina non è più nel DOM, changePage non riesce. Quindi, quando atterro su una pagina, sto usando loadPage per caricare tutte le pagine che sono possibili nel DOM (è gestibile per ora), quindi posso chiamare changePage secondo necessità. Ogni pagina ha un attributo "tipo", quindi posso rimuovere tutte le pagine di un certo tipo quando l'utente naviga in una nuova area in cui quelle vecchie pagine non sono più necessarie. C'è un modo migliore? –

+0

Se si imposta l'attributo 'data-dom-cache =" true "' sugli elementi 'data-role =" page "' allora jQuery Mobile non rimuoverà le pagine quando vengono allontanate. Altrimenti, mi assicuro di impostare manualmente l'attributo 'data-url' per ciascun elemento' data-role = "page" 'al suo URL assoluto, quindi quando usi:'. $ .mobile.changePage ('/ about-us/default .html ') ', il framework sarà in grado di abbinare quella stringa all'attributo' data-url' per la pagina (se già esiste nel DOM). – Jasper

+0

Gotcha. Grazie per il consiglio. Sono molto concentrato sulle prestazioni e sono preoccupato che il DOM si riempia di pagine. L'app ha diverse sezioni, quindi se imposto data-dom-cache = "true", allora sono preoccupato che il DOM si riempirà nel tempo. Quindi, ho creato un approccio in cui ogni pagina ha un attributo type con il valore della sezione a cui appartiene. Quindi, quando l'utente visita una sezione diversa, posso rimuovere tutte le pagine dalla sezione precedente. Questa è la manutenzione DOM. Questo approccio è ok? Sono riluttante a consentire al DOM di riempire le pagine. Grazie ancora per il vostro aiuto. –

Problemi correlati