Cómo abrir un archivo pdf local en WebView Android Studio
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.
- "android.resource://com.an.example/raw/filename"
- "android.resource://" + getPackageName() + "/" + R.raw.filename;
- 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?
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/PdfJSAndroidPdfViewer
: https://github.com/commonsguy/cw-omnibus/tree/v8.10/PDF/Pdfium