¿Cómo agregar acceso directo de escritorio para URL, ignorando el manifiesto de la aplicación web?

Objetivo: Tener un acceso directo en el escritorio que abra https://news.google.com/news/i#0 , ignorando el manifiesto de la aplicación web que contiene que, de lo contrario, "anula" el acceso directo guardado a http://news.google.com/news ?sapa=1 y con "display": "standalone".

Tenía esto funcionando anteriormente en un teléfono Android más antiguo antes de un reemplazo/actualización.

Antes de la actualización, podía mantener presionado y abrir artículos individuales en pestañas nuevas, así como copiar accesos directos de enlaces a artículos específicos, así como todas las demás características y funcionalidades que Chrome tiene para ofrecer. Aquí hay solo una selección parcial de referencias de otros usuarios que se quejan de lo mismo:

El uso de https://news.google.com/news/i#0 proporciona una solución temporal exitosa. Sin embargo, no puedo encontrar una manera exitosa de agregar un enlace para esto a mi pantalla de inicio. La opción "Agregar a la pantalla de inicio" dentro de Chrome guarda un enlace a http://news.google.com/news?sapa=1 , y de tal manera que se abre como una aplicación web en lugar de una página web dentro de Chrome. :

En un sistema operativo de escritorio, esto no sería un problema. (Cree un acceso directo, ingrese la URL deseada, listo).

Intento 1: proporcionar mi propio manifiesto

Así que creé mi propia edición de manifiesto https://news.google.com/news/ui/resources/json/manifest.json para cambiar el start_urlatributo a https://news.google.com/news/i#0y el displayatributo de standalonea browser. Luego creé mi propia página HTML que simplemente contenía lo siguiente, y luego me hospedé en un servidor web local:

<html>
        <head>
                <Title>Google News</Title>
                <link rel="manifest" href="/news/manifest.json"/>
        </head>
        <body>
                Test
        </body>
</html>

Sin embargo, esto no funciona: a pesar de que el acceso directo se guardó con el nombre y el icono deseados, se vincula de nuevo a mi página HTML autohospedada, y no a la indicada start_url. Lamentablemente, parece que las URL entre dominios no están permitidas según la intención del manifiesto, según https://github.com/w3c/manifest/issues/183 y https://github.com/w3c/manifest/issues/196 .

Intento 1b: sitio web de MITM

Dentro de los límites de mi propia red local, pensé que podría tratar de utilizar el sitio web man-in-the-middle (MITM) para proporcionar temporalmente un manfiest deseado para agregarlo a la pantalla de inicio. Desafortunadamente, el sitio web usa HSTS aquí, lo que bloquea el intento apropiadamente.

Independientemente, esto es demasiado trabajo para lo que debería ser un simple esfuerzo.

Intento 2: Widget Marcador

Desafortunadamente, parece que el widget de marcador 1x1 se eliminó en Chrome 48, según https://productforums.google.com/forum/#!topic/chrome/Ikn2YhvT98s . La solución sugerida es usar la función "Agregar a la pantalla de inicio" dentro de Chrome. Ir a 10 / ver inicio.

Intento 3: Utilice el navegador de "Internet" proporcionado por defecto

Desafortunadamente, usar "Agregar acceso directo en la pantalla de inicio" en el navegador de "Internet" proporcionado por defecto produce el mismo resultado que Chrome.

Consideración 4: use una aplicación / widget personalizado

Probablemente podría escribir e instalar una aplicación personalizada o un widget que podría agregarse a la pantalla de inicio para cumplir con el objetivo.

O no reinvente la rueda y use una existente. Algunas posibilidades:

Conclusión

¿Cómo puede alguien crear un acceso directo de escritorio a una URL arbitraria, ignorando un manifiesto de aplicación web proporcionado?

Respuestas (1)

Para omitir el manifiesto de la aplicación web de cualquier sitio

  1. Copia el siguiente código

    JavaScriptx:<!-- NOTE: JavaScriptx is NOT A TYPO!!! -->
    if (meta=document.querySelector('meta[name="mobile-web-app-capable"]')) meta.parentNode.removeChild(meta);
    if (mani=document.querySelector('link[rel="manifest"]')) mani.parentNode.removeChild(mani);
    void(0)
    
  2. Abrir Chrome en Android

  3. Vaya a la URL que desea agregar a su pantalla de inicio, por ejemplo:

  4. Pegue el código copiado anteriormente en la barra de ubicación de Chrome

  5. Desplácese hasta el principio del código pegado

    • (Toque y arrastre repetidamente el texto en la barra de ubicación para desplazarlo
  6. Toque después de la xentradaJavaScriptx

  7. Retroceda el x, usando el aspecto que Backspacetenga su botón en el teclado en pantalla

  8. Toque Goen el teclado en pantalla (para confirmar/aceptar la URL y ejecutarla)

El JavaScript debería ejecutarse en la página y debería parecer que no hace nada, eso está bien.

Nota: si la página se vuelve a cargar por algún motivo , deberá ejecutar JavaScript nuevamente.

Ahora, intente agregar esa página a la pantalla de inicio nuevamente.

Para agregar la URL a la pantalla de inicio

  1. Toque el "menú de 3 puntos" en pantalla de Chrome (a la derecha de la barra de ubicación, al lado del botón "recuento de pestañas abiertas") o use el botón de menú de hardware
  2. Toque Agregar a la pantalla de inicio

Debería terminar como un enlace de Chrome normal, no como una aplicación web, ya que JavaScript eliminó la preferencia de la página por el "modo de aplicación web".

¿Preguntas / Comentarios?

¿Por qué me hiciste copiar JavaScriptxsolo para que retrocediera en la x más tarde?

Porque, en mis pruebas, en mi teléfono, cuando pegué algo con JavaScript:al principio, Chrome arrancó esa parte, dejando solo el texto después.