¿Cómo puedo solicitar un servidor web para servir su versión "amigable para dispositivos móviles" de sus páginas web con eww?


11

ewwÚltimamente estoy usando para navegar por la web en busca de documentación y cosas así. No me gusta que ewwreciba la misma página web que Firefox o Google Chrome, no puede mostrar páginas web como los navegadores web. Entonces, lo que quiero lograr es ewwdecirles a los sitios web que visita que envían la versión amigable para dispositivos móviles de sus páginas web, por lo tanto, tendría un diseño más simple eww(o al menos eso es lo que supongo).


2
Nunca usé eww, pero el truco podría ser falsificar tu User-Agent. La mayoría de las veces el servidor web verifica ese valor antes de redirigirlo a la versión móvil del sitio web.
Nsukami _

Respuestas:


11

ewwusa la urlbiblioteca, por lo que podemos agregar consejos url-http-user-agent-stringpara falsificar la User-Agentcadena:

(advice-add 'url-http-user-agent-string :around
            (lambda (ignored)
              "Pretend to be a mobile browser."
              (concat
               "User-Agent: "
               "Mozilla/5.0 (Linux; U; Android 4.0.3; ko-kr; LG-L160L Build/IML74K) AppleWebkit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30")))

Tomé una cadena de agente de usuario del navegador móvil de www.useragentstring.com.

Con este consejo obtengo la versión móvil de google.com; Su experiencia puede ser diferente.

(Encontré esto usando M-x apropos RET user-agent RET.)


2
Es posible que desee comprobar que el modo principal actual es ewwantes de cambiar el agente de usuario, cambiarlo incondicionalmente podría romper otros paquetes dependiendo de la biblioteca de URL
Iqbal Ansari

¿qué pasa emacs-w3m? ¿Cómo obtener la versión móvil? Como sé, en estos días en realidad estamos usando un diseño receptivo, por lo que el punto es el tamaño de pantalla falso en lugar de la cadena del agente.
Chen bin

el cambio de agente de usuario es algo necesario debido a que algunos servidores web servirán una página que carecen de Javascript, algo que no es evaluado por eww de todos modos ...
shackra

1
@IqbalAnsari: Desafortunadamente ewwllama url-http-user-agent-stringcon el búfer actual en fundamental-mode(un búfer devuelto por process-buffer), por lo que esto no funciona. Estoy de acuerdo en que sería mucho mejor para establecer la cadena de agente de usuario para la ewwúnica , pero no sé cómo lograr esto.
Constantine

1
@chenbin: necesitas configurar w3m-user-agent. Vea esta publicación de Sacha Chua para una forma de hacerlo.
Constantine

0

En versiones recientes de Emacs, simplemente puede usar la variable de personalización url-user-agent:

(setq url-user-agent "User-Agent: Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7\n")

Perdón, ¿qué tan reciente?
shackra

Fue presentado el 5 de noviembre de 2014.
tmalsburg
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.