Comment afficher un PDF via le navigateur Web Android sans «télécharger» au préalable

89

Existe-t-il un moyen pour que le navigateur Android standard ouvre automatiquement un fichier PDF, Word ou un autre fichier typique sans avoir à passer par le processus de téléchargement du fichier, puis à demander à l'utilisateur d'ouvrir le fichier à partir de l'application Téléchargements ou de la barre de notification ?

Nous avons une application Web qui contient beaucoup de documents que nous aimerions inclure et que nous n'avons pas à convertir en HTML, mais obliger l'utilisateur à télécharger le fichier et à l'ouvrir manuellement n'est pas facile à former les utilisateurs.

Sur iOS, ces fichiers s'affichent tous en ligne dans le navigateur. Je voudrais un moyen pour que le navigateur lance automatiquement les fichiers dans Acrobat Reader ou QuickOffice ou tout autre programme dont l'utilisateur dispose pour les afficher.

Quelqu'un connaît-il un moyen de faire cela? Je sais que Google Docs prend en charge l'affichage de fichiers PDF, mais les personnes qui utilisent notre application Web peuvent ne pas avoir accès à Internet public dans tous les cas et utiliser un serveur Web local.

Chris Saldanha
la source
1
Je n'ai jamais vu cela fonctionner de cette façon. Cela étant dit, j'imagine que vous pourriez créer votre propre navigateur capable de décoder et d'afficher correctement les fichiers pdf. Je ne crois tout simplement pas qu'aucun des navigateurs populaires le supporte.
FoamyGuy
Vos fichiers PDF sont-ils optimisés pour "Fast Web View"? Sinon, ils ne peuvent pas être affichés tant que le téléchargement est toujours en cours - par conséquent, ils ne peuvent être téléchargés puis affichés.
Robert

Réponses:

66

Vous pouvez ouvrir un PDF dans la visionneuse Google Docs en ajoutant une URL à:

http://docs.google.com/gview?embedded=true&url=<url of a supported doc>

Cela ouvrirait le PDF dans le navigateur par défaut ou une WebView.

Une liste des formats pris en charge est donnée ici .

arsalank2
la source
4
Cela a été très utile, merci. Je ne suis pas sûr que ce soit 100% nécessaire, mais il vaut probablement la peine de mentionner que l '<url d'un document pris en charge> doit être encodée en url.
mason81
1
Cela ne fonctionne pas pour moi ... Il affiche juste une page "Oups! Un problème est survenu lors de la prévisualisation de ce document" avec un bouton de téléchargement. Il ne se passe rien lorsque vous cliquez sur le bouton de téléchargement.
Lee Yi Hong
25
Le lien ci-dessus n'a pas fonctionné pour Chrome sur Android, je suis passé à https://drive.google.com/viewerng/viewer?embedded=true&url=####et cela a fait le travail!
QFDev
2
Salut, il semble que l'URL de la réponse ne fonctionne plus. J'obtiens une boucle infinie avec maintenant dans l'écouteur webView. L'url publiée dans le commentaire de QFDev fonctionne.
Gene Bo
Cela enregistre toujours le document dans votre répertoire Android temporaire si je me souviens bien.
Jean-Paul
4

Plus précisément, pour installer le plugin pdf.js pour Firefox, vous n'utilisez pas l'App Store. Au lieu de cela, allez sur addons.mozilla.org depuis Mozilla et installez-le à partir de là. Aussi, pour voir s'il est installé correctement, allez dans le menu Outils: Add-ons (pas l'url "about: plugins" comme vous pourriez le penser de la version de bureau).

(Nouveau compte, sinon je mettrais ceci en commentaire sur la réponse ci-dessus)

Jameson Quinn
la source
4
String format = "https://drive.google.com/viewerng/viewer?embedded=true&url=%s";
String fullPath = String.format(Locale.ENGLISH, format, "PDF_URL_HERE");
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(fullPath));
startActivity(browserIntent);
Hamzeh Soboh
la source
3

J'en avais besoin aussi, et les liens ci-dessus ont cessé de fonctionner, c'est donc ce que j'ai trouvé pour fonctionner avec le nouveau Google Drive:

Google a un service qui crée le lien pour les PDF qui ne sont pas dans GDrive: https://docs.google.com/viewer Il suffit d'ajouter votre URL et il crée un lien et un code IFrame (Regardez de près et vous verrez le modèle et créez des liens sans ce service web)

Il existe également un moyen de le faire pour les fichiers PDF stockés dans Google Drive: https://docs.google.com/viewer?srcid=YOUR_GDRIVE_PDF_DOC_ID_HERE&pid=explorer&efh=false&a=v&chrome=false&embedded=true (cela peut être un lien ou le src URL d'un iframe)

J'ai testé sur Android et cela fait bien apparaître la visionneuse PDF.

ubersimple.brad
la source
Pour moi, si je ne suis actuellement pas connecté avec un compte Google, cela m'amène à une page de connexion. Existe-t-il un moyen de contourner cela et de simplement afficher le pdf?
h_k
Essayez d'utiliser le fichier viewerjs.org viewer.js semble prometteur car il est indépendant du navigateur et dépend de votre serveur pour faire le gros du travail.
user1493559
2

Malheureusement, le navigateur natif présent sur les appareils Android ne prend pas en charge ce type de fichier. Voyons si dans la 4.0 nous pourrons le faire.

Guilherme Oliveira
la source
2

Vous pouvez utiliser ceci

webView.loadUrl("https://docs.google.com/viewer?url=" + "url of pdf file"); 
Akash Bisariya
la source
quelqu'un peut-il mentionner la raison du vote négatif.
Akash Bisariya
Peut-être que votre réponse est valable pour une technique de programmation, et la réponse pourrait être juste l'URL, même si je peux l'ajouter dans une balise d'ancrage, qui est déjà mentionnée ci-dessus
Siddaram H
@akash peut-être que vous avez besoin d'ajouter plus d'explications. c'est les règles ici
huzain07
2
  Try this, worked for me.

    WebView view = (WebView) findViewById(R.id.yourWebView);

    view.getSettings().setJavaScriptEnabled(true);
    view.getSettings().setPluginState(WebSettings.PluginState.ON);
    view.loadUrl("http://docs.google.com/gview?embedded=true&url="
                  +"your document link(pdf,doc,docx...etc)");
parvez rafi
la source
setPluginState ON est important, merci de le mentionner
Beeing Jk
@BeeingJk, setPluginStateest obsolète depuis l'API 18 ( stackoverflow.com/questions/19362049/… ).
CoolMind
@CoolMind ce que vous avez montré dans le lien est setPluginsEnabledplutôt quesetPluginState
Beeing Jk
@BeeingJk, s'il vous plaît, ouvrez à nouveau la page, appuyez sur Ctrl + F, écrivez "setPluginState" et appuyez sur Entrée.
CoolMind
@CoolMind ok merci je l'ai aussi vu ici, developer.android.com/reference/android/webkit/… , mais je ne pourrais pas supprimer setPluginStateautrement ma vue Web ne fonctionnera pas
Beeing Jk
0
public class MainActivity extends AppCompatActivity {

    Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        button = findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                openURL("http://docs.google.com/viewer?url=" + " your pdf link ");
            }
        });
    }

    private void openURL(String s) {
        Uri uri = Uri.parse(s);
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setDataAndType(uri,"text/html");
        startActivity(intent);
    }
}
Emon Hossain Munna
la source
-4
  • Téléchargez le fichier .apk acrobat reader pour Android pour afficher le fichier pdf
  • Mettez vos fichiers PDF sur une carte SD
  • Utilisez l'extrait de code ci-dessous

    File file= new File("/sdcard/test.pdf");
    Uri path=Uri.fromFile(file);
    Intent i =new Intent(Intent.ACTION_VIEW);
    i.setDataAndType(path,"application/pdf");
    i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(i);
    
inconnu
la source
4
Ceci est pour un navigateur Web, pas une application Android native. -1
ryandawkins