6

Estoy desarrollando una aplicación móvil usando ASP.Net MVC para generar HTML 5 páginas. Las páginas HTML 5 usarán loadPage de jQueryMobile para hacer llamadas a ASP.Net MVC para cargar páginas en el DOM. Luego usará la página de cambio de jQueryMobiles para hacer que la página esté activa en el DOM en función de las interacciones del usuario con la aplicación. Las llamadas a la aplicación MVC invocarán diferentes servicios web para recuperar los datos de origen para construir el HTML., jQuery Mobile, mejores prácticas de arquitectura de PhoneGap

Nos va a utilizar PhoneGap con la aplicación para que podamos someter la aplicación final a las tiendas de Apple y Android. Mi aplicación no necesita interactuar con la funcionalidad nativa de un dispositivo (contactos, geolocalización, etc.) Dado que no es necesario para interactuar con el sistema operativo del dispositivo real (excepto para hacer jQuery llamadas AJAX para MVC aplicación), a continuación se PhoneGap realmente necesario? ¿Es el enfoque que he descrito anteriormente una forma adecuada de hacer viable una aplicación web en dispositivos móviles?

Desde mi solicitud es asp.net mvc y se alojará en mis servidores, lo que se envió a las tiendas de Apple o Android? ¿Es aquí donde PhoneGap entra en juego? ¿PhoneGap crea un ejecutable de algún tipo que se envía a las tiendas de Android y Apple? Entonces, ¿este ejecutable se descarga en los dispositivos del cliente? Supongo que el ejecutable hará llamadas al sitio MVC a través de la URL para recuperar el HTML de la aplicación.

estoy mirando esto correctamente? Gracias por tu ayuda.

+0

no estoy seguro de por qué mi pregunta fue rechazada. He estado investigando mucho. Necesito alguna aclaración, por favor. Hay tantos recursos diferentes que he leído que tienen diferentes formas de hacer las cosas. A través de mi investigación creo que he descubierto un enfoque. Solo necesito una validación de mis suposiciones. –

Respuesta

5

Phonegap (o algún sustituto) no es absolutamente necesarios, pero muy útil para crear un paquete de aplicaciones de su/JS/CSS fuente HTML. Phonegap no crea el ejecutable (tu IDE lo hace) sino que es un marco de trabajo de la funcionalidad de Java a JavaScript (lo que hace posible ejecutar código Java desde tu JavaScript).

Phonegap básicamente envuelve su HTML/JS sitio/CSS en un webview para que su código puede ser interpretado por el navegador del dispositivo (a veces de una manera más arena en caja que ejecuta el navegador normalmente, por ejemplo pre-IOS-5 webview las instancias no obtienen el motor Nitro JS, por lo que se ejecutan más lentamente que los sitios web en el navegador Mobile Safari).

Usted puede crear su propia webview si su sitio es tan simple que no utiliza ninguna de las otras funcionalidades Phonegap pero puesto que ya está al horno en Phonegap y el dispositivo no tendrá que descargar Phonegap. También podría usar Phonegap.

Phonegap Construir (https://build.phonegap.com/) es un programa que puede comprar para tener sus paquetes de aplicaciones construidas y presentadas a las tiendas de aplicaciones de Apple/Google/RIM/Windows. En general, simplemente utiliza su propio IDE para hacer esto. Por ejemplo, para crear una aplicación iOS, debe usar una nueva computadora Apple (debe tener la última versión del sistema operativo para compilar las últimas versiones de los paquetes iOS). paquetes de aplicaciones de iOS se crean en XCode, y Eclipse IDE es un entorno muy común para crear sus paquetes de aplicaciones para Android: http://developer.android.com/sdk/eclipse-adt.html

Noté que ha dicho que está utilizando $.mobile.loadPage() para cargar páginas en el DOM y $.mobile.changePage() para navegar por el usuario a las páginas. Si solo usa $.mobile.changePage(), automáticamente tomará la página con loadPage(). Si está utilizando loadPage() para precargar contenido a continuación, salida habilidades de prelectura de jQuery Mobile: http://jquerymobile.com/demos/1.1.0-rc.1/docs/pages/page-cache.html

actualización para 2014

Recientemente he construido algunas aplicaciones que utilizan Cordova 3.5 y el proceso de construcción era mucho así simplificado. El proceso de creación de paquetes ahora se gestiona a través de la consola de su sistema y todo, desde la instalación de complementos hasta la reconstrucción de un paquete de aplicaciones, es mucho más fácil.

+0

Gracias por su respuesta. En cuanto a loadPage y changePage, jQueryMobile está eliminando páginas del DOM cuando me alejo de ellas según la documentación. Como la página ya no está en DOM, entonces changePage falla. Entonces, cuando aterrizo en una página, estoy usando loadPage para cargar todas las páginas que son una posibilidad en el DOM (es manejable por ahora) luego puedo llamar a changePage según sea necesario. Cada página tiene un atributo de "tipo", por lo que puedo eliminar todas las páginas de un cierto tipo cuando el usuario navega hacia una nueva área donde ya no se necesitan esas páginas antiguas. ¿Hay una mejor manera? –

+0

Si configura el atributo 'data-dom-cache =" true "' en sus elementos 'data-role =" page "', entonces jQuery Mobile no eliminará las páginas cuando se naveguen desde ellas. De lo contrario, me aseguro de configurar manualmente el atributo 'data-url' para cada elemento' data-role = "page" 'en su URL absoluta así que cuando use:' $ .mobile.changePage ('/ about-us/default .html ') ', el framework podrá hacer coincidir esa cadena con el atributo' data-url' para la página (si ya existe en el DOM). – Jasper

+0

Gotcha. Gracias por el consejo. Estoy súper concentrado en el rendimiento y me preocupa que el DOM se llene de páginas. La aplicación tiene diferentes secciones, así que si configuro data-dom-cache = "true", entonces me preocupa que el DOM se llene con el tiempo. Entonces, creé un enfoque donde cada página tiene un atributo de tipo con el valor de la sección a la que pertenece. Entonces, cuando el usuario va a una sección diferente, entonces puedo eliminar todas las páginas de la sección anterior. Esto es mantenimiento DOM. ¿Está bien este enfoque? Soy reacio a permitir que el DOM se llene de páginas. De nuevo, gracias por tu ayuda. –