Archivo de la etiqueta: JavaScript

Introducción a Azure Mobile Services

¿Qué es el servicio de Azure Mobile Services?

Azure Mobile Services (Servicios Móviles) nos permite crear un backend para nuestras aplicaciones móviles en minutos. Podemos integrar aplicaciones sobre múltiples plataformas: Windows Phone, Windows Store, Android, iOS, Xamarin (iOS y Android), PhoneGap, HTML, Sencha y Appcelerator.

¿Qué funcionalidad nos provee?

  • Hosting de una web API .NET o Node.js con monitoreo y administración 24×7.
  • Uso de single sign-on con Microsoft Account, Active Directory, Facebook, Twitter y Google.
  • Notificaciones push a usuarios individuales y segmentos de audiencia dinámicos.
  • Guardar datos en SQL, Table Storage, y MongoDB.
  • Acceder sistemas on-premise, Office 365, y SharePoint.
  • Usar sincronización basada en la nube para aplicaciones que funcionan offline.
  • Autoescalado a millones de dispositivos.

¿Por dónde arrancamos?

Sigue leyendo

Conectando nuestro sitio web con una aplicación del Windows Store

Una buena forma de conseguir gente que conozca nuestra aplicación es a través del sitio web de la aplicación.

Una forma es bombardear al usuario con banners indicando que tenemos una aplicación, pero una mejor manera es aprovechar la integración de Internet Explorer 10, en su versión Modern UI.

Para esto, lo único que necesitamos es agregar unas pocas líneas de meta en el head de nuestra página, que harán que, dependiendo de si el usuario ya tiene o no nuestra aplicación instalada, lo lleve a la aplicación o a descargarla del Windows Store.

Usando como ejemplo a Cut the Rope (si no lo probaron, pueden jugarlo incluso desde el browser en http://www.cuttherope.ie), si abrimos la página desde IE 10 Modern UI, vamos a tener las siguientes opciones:

Bajar la aplicación

Si no poseemos la aplicación instalada, tendremos la opción de bajarla, lo que nos llevará directo a la vista de la aplicación en el Windows Store para poder bajarla.

Esta opción es la que se muestra en la siguiente figura:

IC591657

Ir a la aplicación

Si ya tenemos instalada la aplicación, se nos dará la opción de ir a la misma. De esta forma el usuario podrá aprovechar las ventajas de estar corriendo dentro de la aplicación, con toda la integración con el Sistema Operativo.

Esta opción es la que se muestra en la siguiente figura:

IC591658

Y para hacerlo, ¿qué necesitamos?

Lo que necesitamos es agregar al menos lo siguiente:

<meta name="msApplication-ID" content="App"/>
<meta name="msApplication-PackageFamilyName" content="ZeptoLabUKLimited.CutTheRope_sq9zxnwrk84pj"/>

Con estas dos simples líneas, Internet Explorer logra identificar si la aplicación ya está instalada en el equipo del usuario, y, si no lo está, lo lleva a la descripción de la misma en el Windows Store.

Pero, ¿de dónde saco esos valores?

La respuesta es simple, estos valores están en el manifest de nuestra aplicación:

  • El Package family name es la última propiedad de la solapa Package (la última).
  • El otro dato, el ID, no está visible en la pantalla amigable que nos muestra Visual Studio, pero siempre podemos visualizar el XML del manifest haciendo click derecho y eligiendo la opción View Code. El valor que necesitamos está dentro del elemento Applications, y es el atributo Id del elemento Application.

<Applications> <Application Id="App" StartPage="default.html">

</Application> </Applications>

Opciones disponibles

En la tabla a continuación se muestran todas las opciones que tenemos disponibles para manejar la relación entre IE10 y nuestra aplicación:

Nombre de la propiedad Contenido
msApplication-ID Obligatorio. ID de la aplicación, relativo al paquete del manifest. Se usa para vincular el sitio a la aplicación
msApplication-PackageFamilyName Obligatorio. Nombre de la familia de paquete de la aplicación, creado por Visual Studio cuando se publica la aplicación. Se usa para vincularse con el Store.
msApplication-Arguments Opcional. Cadena de caracteres de argumento. Por defecto, Internet Explorer envía la URL de la página web, pero podemos usarla para pasar una cadena relevante al contexto.
msApplication-MinVersion Opcional. Fuerza una versión mínima requerida de la aplicación instalada. Si el usuario intenta pasar desde la web a una aplicación desactualizada, primero es llevado al Windows Store para actualizarla.
msApplication-OptOut Opcional. Permite a la página optar por la quita toda o parte de la funcionalidad:

  • ”install” previene ofrecer al usuario el instalar la aplicación si no la tiene.
  • ”switch” previene ofrecer al usuario pasar a la aplicación ya instalada.
  • ”both” previene ambas.

Espero les sea útil y comiencen a ganar usuarios a través de su sitio web Winking smile

Happy coding!

@gjbellmann

Usando la cámara en una aplicación Windows 8

La manera más sencilla de capturar fotos o video desde la cámara es usar la API de CameraCaptureUI. Esta API nos muestra el diálogo de pantalla completa de captura, y nos permite capturar fotos y video con un simple llamado a un método.

Si lo que quisiéramos es implementar nuestra propia interfaz, deberíamos usar MediaCapture.

Para este ejemplo vamos a usar HTML y JavaScript para capturar una foto desde nuestra aplicación. Para poder seguirlo deben tener instalado Windows 8 y Visual Studio Express 2012 for Windows 8 (o superior).

Una vez abierto Visual Studio, creamos un nuevo proyecto, eligiendo como lenguaje JavaScript y como template una aplicación en blanco.

image

Una vez dentro de nuestro proyecto, abrimos default.html y reemplazamos dentro del body el:

<p>Content goes here</p>

por:

<input type="button" onclick="tomarFoto()" value="Tomar una foto" /><br />
<span id="mensaje"></span>

Lo que hicimos fue agregar un input de tipo botón que será el encargado de abrir el diálogo de manejo de la cámara, y un span que mostrará un mensaje indicando si se tomó o no la foto.

Luego vamos a default.js (ubicado dentro de la carpeta js) y agregamos al final la siguiente función, que será la encargada de llamar al diálogo y actualizar nuestro mensaje de acuerdo a lo sucedido:

function tomarFoto() {
    var captureUI = new Windows.Media.Capture.CameraCaptureUI();
    captureUI.captureFileAsync(Windows.Media.Capture.CameraCaptureUIMode.photo).then(function (capturedItem) {
        if (capturedItem) {
            document.getElementById("mensaje").innerHTML = "Se tomó una foto :)";
        } else {
            document.getElementById("mensaje").innerHTML = "No se tomó una foto :(";
        }
    });
}

Lo único que nos falta es declarar que nuestra aplicación utiliza la cámara para poder utilizarla. Para ello vamos al manifiesto de nuestra aplicación (package.appxmanifest), y tildamos webcam dentro de la solapa Capabilities.

image

Con esto ya tendremos nuestra primera aplicación que hace uso de la cámara para capturar una imagen.

Al correrla vemos nuestro botón (si, necesita de un buen diseñador antes de subirla al store Winking smile):

screenshot_11262012_215851

Al tocar el botón por primera vez nos solicita permiso para usar la cámara:

screenshot_11262012_220008

Y si le damos permiso, veremos nuestra propia cámara para tomar una foto!

screenshot_11262012_220114

Tocando en la pantalla sacaremos nuestra foto, la cual podremos recortar o rehacer, si quisiéramos:

screenshot_11262012_220150

Y luego de darle OK, volvemos a nuestra aplicación, con el mensaje indicando que la foto fue tomada:

screenshot_11262012_220155

Espero que el ejemplo les sea útil.

Happy coding!

@gjbellmann

How-to: Cambiar el color del item seleccionado en un ListView en Windows 8 con HTML/JS

En una aplicación Windows 8, el color por defecto de un item seleccionado en un ListView es violeta (su código RGB es: 87, 41, 193), que para muchos casos puede no ser acorde a la paleta de colores de nuestra aplicación.

Si miramos el CSS del tema de nuestra app (normalmente ui-dark.css) vamos a notar que este estilo está aplicado como:

::selection {
    background-color: rgb(87, 41, 193);
    color: rgb(255, 255, 255);
}

Pero reescribir estas mismas líneas dentro del CSS de nuestra vista (cambiando los colores, obviamente) no va a sobreescribir el estilo.

Lo que tenemos que hacer es agregar:

.miPagina .miLista .win-container .win-selectionbackground {
    background-color: rgb(62, 66, 239);
    color: rgb(255, 255, 255);
}

Espero que les sirva.

Happy coding!

@gjbellmann