3.-
Aplicaciones externas del sistema: Launcher y Chooser
Ya hemos visto como
Windows Phone (WP en adelante) nos permite lanzar procesos externos
con el fin de que el usuario realice tareas que preferimos delegar en
otras aplicaciones. Además de esto, para algunas tareas concretas,
WP nos da una serie de elementos para lanzar aplicaciones por defecto
del sistema: los Launcher y los Chooser. Entendemos por aplicaciones
del sistema las que forman parte de WP por defecto, dejando de lado
las aplicaciones de terceros como la que desarrollariamos nosotros.
Desgraciadamente esto también significa que no es posible
implementar nuestros propios Launcher y Chooser.
Los Launcher y Chooser son
limitados y los proporciona WP. Aquí teneis las listas completas con
tutoriales de como usarlos:
La principal diferencia
entre Launcher y Chooser es que el primero solo lanza la aplicación
mientras que el segundo además devuelve algún tipo de resultado a
nuestra aplicación cuando la tarea finaliza. Para entender mejor
como se utilizan veremos a continuación un par de ejemplos a partir
del código.
3.1.- Ejemplo de uso:
Launcher:
Para ver un ejemplo
práctico del uso de un Launcher he escogido el de lanzar el
reproductor multimedia para mostrar un video al usuario. Basta con
añadir los siguientes trozos de código al código de nuestra página
(MyPage.xaml.cs por ejemplo).
Empezamos importando las
bibliotecas correspondientes:
using System;
using Microsoft.Phone.Tasks;
El siguiente trozo de
código es el que finalmente lanza la aplicación. Podeis añadirlo
como el código del callback que se ejecutará al pulsar un botón
por ejemplo:
//Inicializamos
el Launcher
MediaPlayerLauncher mediaPlayerLauncher = new MediaPlayerLauncher();
// Indicamos el archivo de video a reproducir
mediaPlayerLauncher.Media = new Uri("MyVideo.wmv", UriKind.Relative);
// Indicamos donde se encuentra
mediaPlayerLauncher.Location = MediaLocationType.Data;
// Indicamos los controles disponibles para el usuario
mediaPlayerLauncher.Controls = MediaPlaybackControls.Pause | MediaPlaybackControls.Stop;
// Indicamos la orientación de la pantalla
mediaPlayerLauncher.Orientation = MediaPlayerOrientation.Landscape;
//Lanzamos el reproductor
mediaPlayerLauncher.Show();
3.2.- Ejemplo de uso:
Chooser:
En este caso veremos un
ejemplo de Chooser con el que el usuario escojerá un contacto de su
lista de contactos.
El proceso de inicializar
y lanzar un Chooser es muy similar al de un Launcher, salvo que en
este caso tenemos que indicar la parte de nuestro código que se
encargará de manejar el resultado del Chooser.
Empezamos importando las
bibliotecas correspondientes:
using Microsoft.Phone.Tasks;
Inicializamos y lanzamos
el Chooser:
PhoneNumberChooserTask phoneNumberChooserTask;
phoneNumberChooserTask = new PhoneNumberChooserTask();
// Añadimos el callback
phoneNumberChooserTask.Completed += new EventHandler<PhoneNumberResult>(phoneNumberChooserTask_Completed);
phoneNumberChooserTask.Show();
La penúltima línea es la que marca la diferencia. En dicha línea
le estamos añadiendo a nuestro Chooser una función a modo de
callback que se ejecutará cuando la nueva aplicación termine.
Este sería el código de
ejemplo de nuestro callback, que añadiriamos al código de nuestra
página:
void phoneNumberChooserTask_Completed(object sender, PhoneNumberResult e)
{
// Si el resultado es positivo, es decir, si el usuario ha escogido un contacto...
if (e.TaskResult == TaskResult.OK)
{
MessageBox.Show("The phone number for " + e.DisplayName + " is " + e.PhoneNumber);
}
}
En este caso el resultado
se encapsula en un objeto PhoneNumberResult que está formado por un
nombre (DisplayName) y un número de teléfono (PhoneNumber). Nuestra
función simplemente lo mostrará por pantalla.
Con esto ya tendríamos
integrado funcionalidad básica de nuestro teléfono. Es una buena
alternativa al uso de protocolos y URIs aunque la lista de
posibilidades sea limitada.
No hay comentarios:
Publicar un comentario