3 votos

¿Cómo añadir un acceso directo al escritorio para la 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 contenida que, de otro modo, "anula" el acceso directo guardado a http://news.google.com/news?sapa=1 y con "display": "standalone" .

Tuve este trabajo previamente en un teléfono Android más antiguo antes de un reemplazo / actualización.

Antes de la actualización, podía pulsar prolongadamente y abrir artículos individuales en pestañas nuevas, así como copiar accesos directos de enlaces a artículos específicos, además de todas las demás características y funcionalidades que ofrece Chrome. He aquí sólo una selección parcial de referencias de otros usuarios que se quejan de lo mismo:

Utilizando https://news.google.com/news/i#0 proporciona una solución temporal exitosa. Sin embargo, no puedo encontrar una forma exitosa de añadir un enlace para esto a mi pantalla de inicio. La opción "Añadir a la pantalla de inicio" dentro de Chrome, en cambio, guarda un enlace a http://news.google.com/news?sapa=1 - y de tal manera que se abra 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. (Crear un acceso directo, introducir la URL deseada y listo).

Intento 1: Proporcionar mi propio Manifiesto

Así que creé mi propio manifiesto - editando https://news.google.com/news/ui/resources/json/manifest.json para cambiar el start_url a https://news.google.com/news/i#0 y el display atributo de standalone a browser . A continuación, creé mi propia página HTML que simplemente contenía lo siguiente, y luego alojé ambas en un servidor web local:

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

Sin embargo, esto no funciona: A pesar de que el acceso directo se ha guardado con el nombre y el icono deseados, enlaza con mi página HTML autoalojada, y no con la indicada start_url . Desafortunadamente, parece que las URLs entre dominios no están permitidas por 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 MITM

Dentro de los límites de mi propia red local, pensé que podría intentar hombre en el medio (MITM) el sitio web para proporcionar temporalmente un manfiesto deseado para utilizarlo en la pantalla de inicio. Por desgracia, el sitio web utiliza HSTS aquí, que bloquea apropiadamente el intento.

En cualquier caso, es demasiado trabajo para lo que debería ser un esfuerzo sencillo.

Intento 2: Widget Marcador

Lamentablemente, parece que el widget de marcadores 1x1 fue eliminado en Chrome 48, según https://productforums.google.com/forum/#!topic/chrome/Ikn2YhvT98s . La solución sugerida es utilizar la función "Añadir a la pantalla de inicio" de Chrome. Ir a 10 / ver el comienzo.

Intento 3: Utilizar el navegador "Internet" proporcionado por defecto

Desgraciadamente, el uso de "Añadir acceso directo en la pantalla de inicio" en el navegador "Internet" proporcionado por defecto produce el mismo resultado que Chrome.

Consideración 4: Utilizar una aplicación/un widget personalizado

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

O no reinventes la rueda y utiliza una ya existente. Algunas posibilidades:

Conclusión:

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

6voto

user185038 Puntos 76

Para evitar el manifiesto de la aplicación web de cualquier sitio...

  1. Copia el siguiente código...

    JavaScriptx: 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. Ve a la URL que quieres añadir a tu pantalla de inicio, por ejemplo... https://news.google.com/news/i#0

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

  5. Desplácese hasta el principio del código pegado (Toca y arrastra repetidamente el texto de la barra de localización para desplazarlo)

  6. Toque después de la x en JavaScriptx

  7. Retroceda el x , utilizando lo que su Backspace en el teclado en pantalla

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

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

Nota: si la página se recarga para cualquier razón , tendrá que volver a ejecutar el JavaScript.

Ahora, intenta añadir esa página a la pantalla de inicio de nuevo...

Para añadir la URL a la pantalla de inicio...

  1. Toque el "menú de 3 puntos" de Chrome en la pantalla (a la derecha de la barra de ubicaciones, junto al botón de "recuento de pestañas abiertas") o utilice el botón de menú del hardware
  2. Toque Añadir a la pantalla de inicio

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

Preguntas / Comentarios...

¿Por qué me hiciste copiar JavaScriptx ...¿sólo para que luego haga retroceder la x?

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

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X