17 votos

¿Por qué todos los navegadores web de Android no pueden mostrar documentos PDF?

Acabo de cambiar de un iPhone a un Pixel. Cada vez que intento abrir un documento PDF, el navegador lo descarga automáticamente y me pide que lo abra en otro sitio. No quiero eso; quiero una vista de PDF en el navegador. Además, no es específico de los navegadores: la aplicación de Gmail, la aplicación de Telegram, casi cualquier aplicación es así. ¿Tengo que instalar un plugin/extensión del sistema o algo así?

Edición 1: ¿se puede "hackear" la función de pdf en el webview por ejemplo, rooteando el teléfono?

Edición 2: según entiendo de las respuestas es la intención de los desarrolladores de AOSP hacer que la función de pdf no esté disponible, en contra de lo que dicen las razones legales con adobe?

2 votos

0 votos

Es casi como preguntar "¿por qué una aplicación de galería no puede abrir archivos de texto?". Simplemente, es decisión de los desarrolladores qué funcionalidad quieren ofrecer en su aplicación. Los navegadores web son para "web" que es principalmente HTML y JavaScript. Ambos no tienen nada en común con PDF. Así que no es obligatorio que los navegadores web sean compatibles con PDF.

0 votos

Puede utilizar Kiwi Browser y añadir una extensión de lector de PDF como éste . Debería cargar los PDF dentro del navegador, igual que hace Chrome en el escritorio. Funcionó en un par de PDFs que probé.

19voto

Morrison Chang Puntos 286

Respuesta corta:

Instala una aplicación de lectura de PDF en tu dispositivo. O encuentra un navegador (u otra aplicación) que se adapte a tus necesidades.

Respuesta larga:

Android desde el principio tiene un concepto llamado Intentos lo que significa que una aplicación puede utilizar otra para gestionar una tarea específica, como "abrir la aplicación de correo electrónico para iniciar un mensaje" o "reproducir un vídeo". Esto también significa que si un formato de documento tiene una versión 2 / o características adicionales, la aplicación receptora podría actualizarse para manejarlo.

El inconveniente es que los dispositivos Android necesitan tener instalada una aplicación capaz de leer el archivo/intento/URI que se le pasa.

Por lo que tengo entendido, iOS sólo ha añadido Enlaces universales en iOS 9 que podría proporcionar un comportamiento similar. Dado que Apple proporciona un Visor de PDF en su UIWebview/WkWebview Espero que cualquier aplicación en iOS utilice el marco existente de iOS, ya que la interacción entre aplicaciones tiene requisitos adicionales.

Dado que cualquier función adicional (como la visualización de PDF) añadirá tamaño a la aplicación original, en los primeros tiempos era mejor tener una aplicación independiente. Si no necesitabas la función, no tenías que descargar nada que pudiera costar un valioso tiempo de uso de datos o que ocupara espacio en tu teléfono y, posiblemente, evitar tener una función duplicada en diferentes aplicaciones. Es comprensible que los teléfonos modernos tengan mucho espacio de almacenamiento, pero al final Android ha tenido un principio rector a través del sistema Intent para dejar la capacidad de leer/reproducir cualquier documento (PDF, archivo de oficina, vídeo, audio) a aquellas aplicaciones que pueden manejar específicamente esos formatos de archivo.

Respuestas a Edit1 y Edit2 por OP:

Respuesta de Edit1: "Rootear" no te dará funciones adicionales en ningún navegador/aplicación ya que añadir funciones implica cambios profundos en la aplicación que requieren tiempo de desarrollo de software. Si quieres un visor de PDF bien integrado en una aplicación de navegador, tendrás que encontrar uno. Se ha sugerido Opera. Lo mismo ocurriría con cualquier otra aplicación de mensajería/comunicación para cualquier archivo o acción concreta, es decir, no esperes que vea hojas de cálculo o maneje mapas geográficos. La ventaja de Android es que eres libre de cambiar la aplicación que maneja la acción y obtener una mejor experiencia en lugar de estar limitado a cualquier aplicación pre-construida (que limita iOS).

Respuesta Edit2: Los fabricantes son libres de añadir sus propios visores de PDF/documentos para su versión particular de Android. AOSP sólo proporciona el entorno. PDF en este punto es un mezcla de partes abiertas y propietarias por lo que, dependiendo de la versión del documento, cualquier motor de renderizado de PDF puede encontrar dificultades. Además, el PDF trata de mostrar el texto/las imágenes de una manera particular, incluyendo las fuentes. Esto significa que cualquier aplicación que incorpore un motor PDF tendrá que ser consciente de los ataques de seguridad. Véase mi respuesta a ¿Por qué Android ha hecho imposible la instalación de fuentes del sistema? sobre cómo las fuentes pueden suponer un riesgo para la seguridad. Los navegadores, dada su naturaleza de caja de arena que muestra código HTML y Javascript arbitrario, están atentos a la seguridad, otras aplicaciones quizás no tanto, ya que no es una característica principal del producto.

1 votos

Ugh. Toda la razón por la que no quiero un lector externo es porque no quiero que el PDF contamine el sistema de archivos, hundiendo el archivo quién sabe dónde usando ciclos de borrado flash, además de hacerme buscarlo y borrarlo después. A menudo, el visor del navegador lo lee directamente de la memoria sin tener que guardarlo primero en algún sitio.

2 votos

@Michael Para los navegadores, si no termina en el directorio Download, el documento seguirá estando en el espacio de archivos temporales del navegador junto con otros archivos HTML/Javascript. Lamentablemente la gestión de archivos de usuario final de Android es complicada, incluso para los desarrolladores de Android, por lo que tu frustración es comprensible.

0 votos

Sí como la discusión anterior, mis razones para desear pdf en el navegador son que no sólo contaminan la carpeta de descarga, pero también pierde el título de la página web (por ejemplo, el archivo de arxiv se nombra con un número de identificación en lugar del título del artículo), y también adobe reader no tiene función de pestañas y en general tiene mala experiencia. ¿Hay alguna solución, lo tomaría incluso si tengo que Root mi teléfono ...

11voto

James Hughes Puntos 111

Su premisa es errónea.

Navegadores Android puede mostrar absolutamente los PDFs .

Sin embargo, el paradigma de diseño de aplicaciones en Android es bastante Unixy en el sentido de que las aplicaciones están generalmente diseñadas para hacer una cosa (es decir, navegar por la web) y hacerlo bien. Si necesitan hacer algo más (por ejemplo, leer un PDF), lo pasan a otra aplicación para que se encargue de ello (cuyo único propósito es manejar esa otra cosa) utilizando intentos .

El hecho de que ese sea el paradigma de diseño típico no significa que los desarrolladores no puedan optar por evitarlo, como en el caso de Opera.

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