Hello World Microsoft Band


Hace unos días recibí una Microsoft Band, si bien es muy práctica es fácil de usar y lo más interesante, es muy fácil de hacer algún desarrollo para esta, por lo que he decidido indagar en el SDK y hacer algunos experimentos para así finalmente crear mi propia aplicación.

A diferencia de otros post que he hecho en este blog voy a dejar muy separados todos los post para que sean entendibles y no se aten los unos con los otros. Al final haré una aplicación funcional para esta Band. Continue reading “Hello World Microsoft Band”

¿Cómo integrar Instagram en App Studio?


Hace unos días en un evento llevado a cabo en Bogotá, Colombia, me hicieron una pregunta la cual dejaré plasmada en este blog y es ¿Cómo integrar Instagram en una aplicación hecha con App Studio?.

Para ello supongo que ya se tendrán las bases necesarias para hacer una aplicación base en esta plataforma, aquí usaré la plantilla de “Mi banda favorita” y haré alusión a un grupo de música electrónica llamado Disclosure.


Continue reading “¿Cómo integrar Instagram en App Studio?”

Eventos en WinJS


En el desarrollo de software es indispensable el manejo de eventos que se tiene X tecnología, en algunos se llaman triggers, events, delegates, en fin… En JavaScript estándar existen varios métodos, sin embargo cuando se está construyendo una aplicación WinJS nativa es necesario implementar el API de Microsoft.

Así que para ello y sin dar tantos rodes se necesita un disparador y un escuchador de eventos.

Dispatcher

Para disparar un evento solo es necesario declarar alguno de los dos ejemplos a continuación, el primero si es un evento básico y el segundo por si es necesario adjuntar información a este evento.

Método 1

WinJS.Application.queueEvent("nameOfEvent");

Método 2

WinJS.Application.queueEvent({ type: "nameOfEvent", information: { someProperty: "someValue" } });

Listener

 WinJS.Application.addEventListener("nameOfEvent", function (data) {
     console.log(data.information);
 });

Windows Phone 8.1: WebView – DefaultBackgroundColor & DOMContentLoaded


En Windows Phone 8.1 Microsoft nos proporciona otro método y dos eventos sumamente importantes para dominar a nuestro antojo el control WebView el cual he dedicado un tiempo para mostrar el potencial de este.

DefaultBackgroundColor

Para comenzar ahora podemos cambiar el color que trae el control por defecto si y solo si, la página no define un background porque ahí si no podemos modificarlo. Esto nos puede servir para modificar una aplicación Web a la identidad de la aplicación, con esto y con las técnicas anteriores podemos tener este WebApp totalmente modificable y parametrizable desde la aplicación de Windows, esto es simplemente magnífico!.

Yendo al grano, DefaulBackgroundColor es una propiedad que se puede leer y escribir (Get, Set) donde pide por parámetro a modificación un objeto tipo Windows.UI.Color y así mismo se puede obtener este tipo de dato.

El uso de esta propiedad es la siguiente:

// Get
Windows.UI.Color myColor = myWebView.DefaultBackgroundColor;

// Set
myWebView.DefaultBackgroundColor = Color.FromArgb(255, 0, 0, 0);

Continue reading “Windows Phone 8.1: WebView – DefaultBackgroundColor & DOMContentLoaded”

Windows Phone 8.1: WebView – ScriptNotify & InvokeScriptAsync


En WinRT el control WebView proporciona dos métodos el cual hace que le suba el poder casi hasta que las páginas Web podrían interactuar directamente con la aplicación, proporcionando así una visión totalmente distinta de que este control podría comportarse como una especie de IFRAME o un sandbox dentro de nuestra aplicación.

Este detalle es maravilloso pero así mismo puede ser un gran dolor de cabeza ya que podría ser una puerta trasera (backdoor) de nuestra aplicación y así podríamos afectar completamente la seguridad ya que estamos dejando un portal abierto hacia la Web.

“Puesto que este evento se activa mediante código externo, debe tener cuidado sobre lo que se coloca en el controlador de eventos. Para evitar que los scripts malintencionados aprovechen este evento, asegúrese de habilitarlo solo para los URI de confianza” – MSDN

Teniendo en cuenta estas recomendaciones y tomando las medidas de seguridad necesarias procederemos a implementar estos poderosos métodos.

InvokeScriptAsync

Este método como su nombre lo indica es capaz de ejecutar un script declarado en el fuente destino, por lo general sería una función de JavaScript; adicional puede retornar un mensaje tipo string de modo callback.

En C#

await myWebView.InvokeScriptAsync("scriptName", new string[] { "Parameter1", "Parameter2" });

En JS

function scriptName(Param1, Param2) {
    // ..
}

Continue reading “Windows Phone 8.1: WebView – ScriptNotify & InvokeScriptAsync”

Windows Phone 8.1: WebView


El control WebView hospeda contenido Web en la aplicación el cual está en el ensamblado Windows.UI.Xaml.Controls.WebView definido en las librerías compartidas entre Windows y Windows Phone; mediante este control es posible renderizar código HTML y poderlo visualizar, por lo tanto podemos embeber una página Web en nuestra aplicación la cual nos puede traer grandes beneficios a la hora de desarrollar aplicaciones multiplataforma, sin embargo si se usa sin control o de manera desmedida puede convertirse en un dolor de cabeza ya que se puede volver un vector de ataque a nuestra aplicación.

He ahí el motivo de dedicarle una serie de artículos a este aparente sencillo control del cual podremos aprovechar para sacarle su máximo potencial.

Comenzando, dedicaré este artículo a explicar los ámbitos sencillos.

Primeros pasos

Para implementar un control tipo WebView nuestro proyecto de Windows Phone 8.1 debe tener referenciado el ensamblado Windows.UI.Xaml.Controls.WebView el cual si lo construimos con la ayuda de Visual Studio 2015 o 2013 ya lo tendremos referenciado por defecto.

Es decisión nuestra declararlo en la interfaz gráfica o en el code behind, sin embargo la documentación de las API de Microsoft oficial (MSDN) nos recomienda declarar todos los controles a través de XAML porque ya este fue optimizado para administrar la memoria y demás, sin embargo en casos particulares se puede declarar que en este caso será C#.

Code behind:
Windows.UI.Xaml.Controls.WebView webView = new Windows.UI.Xaml.Controls.WebView();
webView.Name = "myWebView";
XAML:
<WebView x:Name="myWebView" />

Continue reading “Windows Phone 8.1: WebView”