it-swarm-es.com

¿Cómo crear mi propia integración de unidad webapp?

Estoy tratando de crear algunas aplicaciones web para usar con Firefox. Recibí un tutorial de Canonical ( http://developer.ubuntu.com/resources/app-developer-cookbook/unity/integrating-tumblr-to-your-desktop/ ) y no lo hice entiendo una cosa, tal vez alguien podría ayudarme.

Tengo que ejecutar el siguiente script en la consola web:

// ==UserScript==
// @name          tumblr-unity-integration
// @include       https://tumblr.com/dashboard
// @version       @[email protected]
// @author        WebApps Team
// @require       utils.js
// ==/UserScript==

window.Unity = external.getUnityObject(1.0);

Unity.init({ name: "Tumblr",
            iconUrl: "icon://Tumblr",
            onInit: null });

Todo está bien, creó el lanzador de iconos y funciona con alt + tab. Eso ya es suficiente para mí, pero si cierro las ventanas, el ícono del iniciador que creé antes deja de funcionar (quiero decir, abre el sitio, pero no funciona como otra aplicación web y no se muestra en alt + pestaña también). Tal vez tenga que ejecutar este script automáticamente cada vez que entro en ese sitio (en este ejemplo, Tumblr). ¿Cómo puedo hacer eso?

Gracias,

2
euDennis

Sí, tiene usted razón. Necesitas ejecutar eso de nuevo.

Básicamente, las aplicaciones web son scripts de usuario que se ejecutan cada vez que ingresa en un sitio web determinado (en su caso, https://tumblr.com/dashboard ), que luego proporciona la integración el sitio web en el escritorio de Unity.

Entonces, si desea hacer que sea "permanente" (ejecute ese código cada vez que ingrese en el sitio web), puede incluir ese js en el sitio web (si lo posee) o usar algo como GreaseMonkey o TamperMonkey para incluir ese script en sitios web que no controlas.

Por supuesto, también puede crear un paquete: consulte la fuente de unity-webapps-youtube por ejemplo.

3
Salem

Aquí le mostramos cómo integrar el script en Ubuntu "correctamente", antes de hacer un paquete de instalación. Incluyo en cada etapa los comandos del terminal para hacer lo que describo. En aras de la generalidad, esto supone que está integrando una aplicación llamada "Mysite". (Aquí estoy dando instrucciones más explícitas de las que probablemente necesita el operador, pero quiero asegurarme de que sea útil para aquellos con menos millaje de Linux).

  1. Cree una subcarpeta para su aplicación en el directorio/usr/share/unity-webapps/userscripts /. Por coherencia, es bueno nombrar su carpeta unity-webapps-.

    cd/usr/share/unity-webapps/userscripts
    Sudo mkdir unity-webapps-mysite

  2. Mueva su script de integración (con la extensión user.js) al directorio que acaba de crear:

    Sudo mv ~/somefolder/Mysite.user.js/usr/share/unity-webapps/userscripts/unity-webapps-mysite /

  3. Cree un nuevo archivo en ese mismo directorio llamado manifest.json:

    cd/usr/share/unity-webapps/userscripts/unity-webapps-mysite Sudo touch manifest.json

  4. Abra ese archivo manifest.json en su editor de texto favorito:

    Sudo nano manifest.json

  5. Agregue a ese archivo vacío los metadatos necesarios para la integración de aplicaciones web. Estos metadatos deben basarse en la sección de comentarios iniciales de su script de integración. Aquí hay un archivo de manifiesto básico repetitivo para nuestro script Mysite:

    {"incluye": [" https://mysite.com/", " http://mysite.com/ "],
    "requiere": ["utils.js"],
    "nombre": "Mysite",
    "scripts": ["Mysite.user.js"],
    "mantenedor": "Yo",
    "versión-manifiesto": "1.0",
    "integración-versión": "1.0",
    "nombre-paquete": "Mysite",
    "iconos": {"128": "128/unity-webapps-mysite.png",
    "48": "48/unity-webapps-mysite.png", "52": "52/unity-webapps-mysite.png", "64": "64/unity-webapps-mysite. png "}," dominio ":" mysite.com ",
    "página de inicio": " https://mysite.com/ ",
    "licencia": "GPL-3"}

  6. Cree un icono cuadrado para su aplicación de al menos 128 px por 128 px y realice copias redimensionadas que sean 64x64, 52x52 y 48x48. (Solo uso el visor de imágenes gThumb para esto. GIMP también funciona). Debe dar a todos los archivos el mismo nombre (unity-webapps-mysite .png) por lo que es posible que desee crear carpetas separadas para cada una llamada "128" "64" "52" y "48" para mantener los archivos rectos.

  7. Copie estos archivos de imagen en las subcarpetas apropiadas del directorio/usr/share/icons/unity-webapps-application/apps. Si ya tiene instalado el paquete webapps, estas subcarpetas ya deberían existir.

    Sudo mv ~/somefolder/128/unity-webapps-mysite.png/usr/share/icons/unity-webapps-applications/apps/128 /
    Sudo mv ~/somefolder/64/unity-webapps-mysite.png/usr/share/icons/unity-webapps-applications/apps/64 /
    Sudo mv ~/somefolder/52/unity-webapps-mysite.png/usr/share/icons/unity-webapps-applications/apps/52 /
    Sudo mv ~/somefolder/48/unity-webapps-mysite.png/usr/share/icons/unity-webapps-applications/apps/48 /

¡Tu aplicación web ahora debería estar integrada en Unity! Debería poder encontrarlo buscando la lente de aplicaciones del tablero de Unity y luego (si lo desea) fijarlo a su lanzador de Unity. Es posible que el ícono no se levante de inmediato, pero en ese caso simplemente cierre la sesión y vuelva a iniciarla. Tu aplicación web ahora debería aparecer en toda su gloria icónica.

Lo que no sé es si las actualizaciones del paquete oficial unity-webapps-application eliminarán alguno de estos archivos, por lo que estoy trabajando para descubrir cómo empaquetar un script como .deb e instalarlo. Pero no estoy claro acerca de esa parte. De una forma u otra, querrá asegurarse de tener una copia de seguridad de todo en su carpeta de inicio por si acaso.

0
monotasker