Microsoft, si Microsoft, ha desarrollado una interesante idea con la que nos permite extender las capacidades de nuestro Android mediante una API Javascript.
Como se de una gestión de eventos básica se tratara on{X} nos permite definir funcionalidades interesante cuando estos eventos se cumplan.
Hola Mundo
// Cuando desbloquee el móvil
device. screen.on("unlock", function(){
// Muestra el mensaje "Hello world!"
var notification = device.notifications.createNotification('Hello world!');
notification.show();
console.log('Hello World notification was sent to the phone');
});
On{X} está compuesto de una aplicación para Android que debes instalar en tu dispositivo móvil y una aplicación web en la que al entrar con login de Facebook podrás ver un listado de recipientes con tus controles definidos, estos controles están continuamente sincronizados entre el móvil y la aplicación así que es posible realizar cambios y verlos en vivo directamente en tu móvil.
Para desarrollar tus propios recipientes dispones de un editor online que automáticamente almacenará el código y lo compartirá con tu dispositivo móvil.
De esta forma, planificarte tareas como «Enviar un mail a tu mujer diciéndole que estás en el supermecado y si tienes que comprar algo concreto es el momento, automáticamente cuando entras al supermercado» es posible, sencillo y lo que a mi me gusta más, te lo puedes programar tu mismo!
Ejemplos
Avisame si he de coger un paraguas en el primer desbloqueo del móvil de cada mañana si el tiempo dice que va a llover.
// Inicializamos variables
var reminder = "take an umbrella";
var weatherCondition = "rainy";
console.log('Started script: Remind me to ' + reminder + ' every day the first time I unlock my phone, if it is going to be ' + weatherCondition);
device.screen.on('unlock', function () {
console.info('device unlocked');
var lastDateScreenUnlocked = device.localStorage.getItem('lastDateScreenUnlocked');
var today = new Date().toLocaleDateString();
// Si es el primer desbloqueo
if (!lastDateScreenUnlocked || lastDateScreenUnlocked !== today) {
// Coger posición actual
var locationListener = device.location.createListener('CELL', 2);
locationListener.on('changed', function(locSignal) {
locationListener.stop();
// Carga el tiempo en función de la posición
feeds.weather.get(
{
location: locSignal.location.latitude + ',' + locSignal.location.longitude,
time: 0
},
function onSuccess(weather, textStatus, response) {
console.info('Got the weather forecast for today:', JSON.stringify(weather.forecasts[0]));
// Compruemas las condiciones atmosféricas
var forecast = weather.forecasts[0];
if ((weatherCondition === 'rainy' && (forecast.rain > 50 || forecast.sky.toLowerCase() === 'rain')) || // Llueve
(weatherCondition === 'sunny' && forecast.sky.toLowerCase() === 'clear') || // Soleada
(weatherCondition === 'windy' && forecast.wind.speed >= 20 && forecast.wind.speed < = 30)) { // Viento
// Creamos la notificación
var notification = device.notifications.createNotification(reminder);
notification.on('click', function () {
device.browser.launch(weather.forecastUrl);
});
// Mostramos el mensaje
notification.show();
} else {
console.info('weather is not ' + weatherCondition );
}
},
function onError(response, textStatus) {
console.error('Failed to get weather: ', textStatus);
});
});
locationListener.start();
// Actualizamos el tiempo desde la última notificación
device.localStorage.setItem('lastDateScreenUnlocked', today);
console.info('Stored the last time the screen was unlocked: ', today);
}
});
console.log('Completed script: Remind me to ' + reminder + ' every day the first time I unlock my phone, if it is going to be ' + weatherCondition);
3 comentarios, 0 referencias
+
#