Cómo abrir un archivo pdf local en WebView Android Studio

Resuelto Z10987654321X asked hace 54 años • 1 respuestas

Soy consciente de que esta pregunta se ha hecho muchas veces, pero todavía no consigo que funcione. Tengo un pdf en la carpeta sin formato y estoy intentando abrirlo en una vista web usando " https://drive.google.com/viewerng/viewer?embedded=true&url= " para abrirlo en la vista web.

Creo que mi problema es que no puedo encontrar la ruta correcta para el archivo pdf. Lo probé de tres maneras diferentes y la vista web dice que aparece un error (la URL no existe) o "abre" el pdf, pero la vista web muestra este texto en el medio, "No hay vista previa disponible". .

Estas son las tres formas en que intenté obtener la ruta del archivo.

  1. "android.resource://com.an.example/raw/filename"
  2. "android.resource://" + getPackageName() + "/" + R.raw.filename;
  3. Entorno.getExternalStorageDirectory() + "/nombredearchivo.pdf"

Para los métodos 1 y 3, probé "nombre de archivo" y "nombre de archivo.pdf".

Ninguno de estos permite que el pdf se cargue en la vista web. A continuación se muestra el código que uso para cargar el pdf. (Nota: este método funciona si uso una URL web y no un archivo local)

    webview = (WebView) findViewById(R.id.webView);
    webview.getSettings().setJavaScriptEnabled(true);

    webview.getSettings().setBuiltInZoomControls(true);

    String pdf = "one_of_the_above_methods";
    webview.loadUrl("https://drive.google.com/viewerng/viewer?embedded=true&url=" + pdf);

¿Qué estoy haciendo mal? ¿Existe una mejor manera de cargar un pdf local dentro de mi aplicación sin que ocupe toda la página de actividad?

Z10987654321X avatar Jan 01 '70 08:01 Z10987654321X
Aceptado

Tengo un pdf en la carpeta sin formato y estoy intentando abrirlo en una vista web usando " https://drive.google.com/viewerng/viewer?embedded=true&url= " para abrirlo en la vista web.

Eso nunca ha sido posible.

¿Existe una mejor manera de cargar un pdf local dentro de mi aplicación sin que ocupe toda la página de actividad?

Lo mejor es no cargarlo en absoluto dentro de tu aplicación. Utilice la aplicación de visualización de PDF preferida del usuario, a través de ACTION_VIEW.

Más allá de eso, puede usar una versión ligeramente modificada de PDF.js en Android 4.4+. O utilíceloAndroidPdfViewer en una gama más amplia de versiones de Android, aunque hace que su APK sea mucho más grande. Consulte esta publicación de blog para obtener más contexto sobre estas y otras (peores) opciones.

Además, aquí hay aplicaciones de muestra que demuestran:

  • PDF.js: https://github.com/commonsguy/cw-omnibus/tree/v8.10/PDF/PdfJS
  • AndroidPdfViewer: https://github.com/commonsguy/cw-omnibus/tree/v8.10/PDF/Pdfium
CommonsWare avatar Mar 11 '2018 23:03 CommonsWare