Continuando con el post anterior (demasiado que escribir y poco espacio para hacerlo), ahora si vamos a poner manos a la obra: vamos a construir un Activity para IE8.
Vas a necesitar:
Un Activity está descrito por un archivo XML llamado el Manifiesto OpenService del Activity. Este es un microformato que define las características del Activity y que tiene varios elementos, atributos y valores posibles.
El archivo debe empezar con el siguiente encabezado:
<os:openServiceDescription xmlns:os="http://www.microsoft.com/schemas/openservicedescription/1.0">
Después agregamos los valores descriptivos en tres elementos: nombre (name), icono (icon) y descripción:
<os:name>Map with MyMap</os:name> <os:icon>http://www.example.com/favicon.ico</os:icon> <os:description>Map addresses easily with MyMap.</os:description>
El elemento os:ctivity es muy importante y es el que describe el tipo de servicio que ofrece el Activity que estamos creando. Hay varias categorías en que puede caer: add, blog, define, map, send o translate.
<os:activity category="map">
El siguiente elemento define cómo se va a accionar el Activity. En este caso hay 3 posibilidades: document, selection o link:
<os:activityAction context="selection">
La opción de Preview permite ver la actividad sin abandonar la página, y comparte los atributos con os:execute. Este parámetro puede ser opcional:
<os:preview action="http://maps.example.com/preview.php?addr={selection}" />
Ahora sí: la acción que se realiza cuando el usuario da clic sobre el Activity.
<os:execute action="http://maps.example.com/" method="get">
Tanto os:preview como os:execute tienen los siguientes atributos para enviar o solicitar datos:
Atributo
¿Requerido?
Descripción
Algunas veces hay que proveer una forma de pasar los parámetros al sitio web en forma de variables. Un atributo opcional que puede utilizarse es os:parameter:
<os:parameter name="addr" value="{selection}" type="text" />
Poniendo todo esto junto, nos queda algo como esto:
<?xml version="1.0" encoding="UTF-8"?> <os:openServiceDescription xmlns:os="http://www.microsoft.com/schemas/openservicedescription/1.0"> <os:homepageUrl>http://maps.example.com</os:homepageUrl> <os:display> <os:name>Map with MyMap</os:name> <os:icon>http://www.example.com/favicon.ico</os:icon> <os:description>Map addresses easily with MyMap.</os:description> </os:display> <os:activity category="map"> <os:activityAction context="selection"> <os:preview action="http://maps.example.com/preview.php?addr={selection}" /> <os:execute action="http://maps.example.com/" method="get"> <os:parameter name="addr" value="{selection}" type="text" /> </os:execute> </os:activityAction> </os:activity> </os:openServiceDescription>
Para instalar el Activity, basta con poner un control en una página de tu sitio web, haciendo referencia al archivo del Manifiesto:
<button onclick="window.external.AddService('http://www.example.com/Activity.xml')"> Instalar Activity</button>
La especificación completa sobre el microformato de OpenService y más opciones se encuentran en la guía de desarrollo de Activities. Échale un vistazo para que veas que más puedes lograr.
¡Listo! Con esto ya puedes distribuir Activities para IE8, y puedes crear tantas como necesites.