17 votes

Pourquoi tous les navigateurs web Android sont-ils incapables d'afficher des documents PDF ?

Je viens de passer d'un iPhone à un Pixel. Chaque fois que j'essaie d'ouvrir un document PDF, le navigateur le télécharge automatiquement et me demande de l'ouvrir ailleurs. Je ne veux pas de cela ; je veux une vue PDF dans le navigateur. Et ce n'est pas spécifique aux navigateurs : l'application Gmail, l'application Telegram, presque toutes les applications sont comme ça. Dois-je installer un plugin/extension système ou quelque chose comme ça ?

Edit 1 : pouvez-vous "hacker" la fonction pdf dans le logiciel webview par exemple, en rootant le téléphone ?

Edit 2 : si j'ai bien compris les réponses, les développeurs de l'AOSP ont l'intention de rendre la fonction pdf indisponible, contrairement à la raison légale invoquée par adobe ?

19voto

Rehan Khwaja Points 332

Réponse courte :

Installez une application de lecture de PDF sur votre appareil. Ou trouvez un navigateur (ou une autre application) qui répond à vos besoins.

Réponse longue :

Android dispose depuis le début d'un concept appelé Intentions ce qui signifie qu'une application peut utiliser une autre application pour gérer une tâche spécifique comme "ouvrir l'application de messagerie pour commencer un message" ou "lire une vidéo". Cela signifie également que si un format de document a une version 2 / ou des fonctionnalités supplémentaires, l'application réceptrice peut être mise à jour pour le gérer.

L'inconvénient est que les appareils Android doivent être équipés d'une application capable de lire le fichier, l'intention ou l'URL qui lui est transmis.

D'après ce que j'ai compris, iOS n'a ajouté que Liens universels dans iOS 9 qui pourrait avoir un comportement similaire. Étant donné qu'Apple fournit un Visualiseur PDF dans leur UIWebview/WkWebview Je m'attends à ce que toute application sur iOS utilise le cadre iOS existant, car l'interaction inter-applications a des exigences supplémentaires.

Étant donné que toute fonction supplémentaire (comme l'affichage des PDF) augmentera la taille de l'application originale, il était préférable, dans les premiers temps, d'avoir une application distincte. Si vous n'aviez pas besoin de la fonction, vous n'aviez pas besoin de télécharger quoi que ce soit qui puisse coûter du temps d'antenne précieux ou occuper de l'espace dans votre téléphone, et vous évitiez peut-être d'avoir une fonction dupliquée dans différentes applications. Il est compréhensible que les téléphones modernes disposent de beaucoup d'espace de stockage mais, en fin de compte, Android a eu pour principe directeur, via le système Intent, de laisser la possibilité de lire n'importe quel document (PDF, fichier bureautique, vidéo, audio) aux applications qui peuvent spécifiquement gérer ces formats de fichiers.

Réponses à Edit1 et Edit2 par OP :

Réponse de l'éditeur1 : Le "rootage" ne vous permettra pas d'obtenir des fonctionnalités supplémentaires dans un navigateur ou une application, car l'ajout de fonctionnalités implique de profondes modifications de l'application, ce qui nécessite du temps de développement logiciel. Si vous voulez une visionneuse de PDF bien intégrée dans une application de navigateur, vous devrez en trouver une. Opera a été suggéré. Il en va de même pour toute autre application de messagerie/communication pour un fichier ou une action particulière, c'est-à-dire que vous n'attendez pas d'elle qu'elle affiche des feuilles de calcul ou qu'elle gère la cartographie géographique. L'avantage d'Android est que vous êtes libre de changer l'application qui gère l'action et d'obtenir une meilleure expérience plutôt que d'être limité à des applications prédéfinies (ce qui est le cas d'iOS).

Réponse de l'Edit2 : Les fabricants sont libres d'ajouter leurs propres visionneuses de documents PDF pour leur version particulière d'Android. L'AOSP ne fait que fournir l'environnement. À ce stade, le PDF est un mélange de pièces ouvertes et propriétaires Ainsi, en fonction de la version du document, tout moteur de rendu PDF peut rencontrer des difficultés. En outre, le PDF tente d'afficher le texte et les images d'une manière particulière, y compris les polices de caractères. Cela signifie maintenant que toute application intégrant un moteur PDF devra être consciente des attaques de sécurité. Voir ma réponse à Pourquoi Android a-t-il rendu impossible l'installation de polices système ? sur la façon dont les polices de caractères peuvent constituer un risque pour la sécurité. Les navigateurs, étant donné leur nature de bac à sable affichant des codes HTML et Javascript arbitraires, sont attentifs à la sécurité, les autres applications peut-être moins, car il ne s'agit pas d'une caractéristique essentielle du produit.

11voto

Persistence Points 121

Votre hypothèse est erronée.

Navigateurs Android peut absolument afficher des PDF .

Cependant, le paradigme de conception des applications dans Android est assez Unix, en ce sens que les applications sont généralement conçues pour faire une chose (c'est-à-dire naviguer sur le web) et la faire bien. Si elles ont besoin de faire autre chose (lire un PDF, par exemple), elles le confient à une autre application (dont le seul but est de gérer cette autre chose) en utilisant intentions .

Ce n'est pas parce que c'est le paradigme de conception typique que les développeurs ne peuvent pas choisir de s'en écarter, comme dans le cas d'Opera.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X