Solución:
(1) Visor de documentos de Google, puede abrirlo en el navegador Android como,
mWebView.loadUrl("https://docs.google.com/gview?embedded=true&url="+ webUrl);
Actualizar:
(2) Consulte esta biblioteca, en build.gradle(módulo de la aplicación) agregue esta dependencia,
compile 'com.github.barteksc:android-pdf-viewer:2.8.2'
Lo sé, esta pregunta es vieja.
Pero realmente me gusta el enfoque de Xamarin para hacer uso del pdf.js de Mozilla. Funciona en versiones anteriores de Android, no necesita una aplicación de visor de PDF especial para esto y puede mostrar fácilmente un PDF dentro de la jerarquía de vistas de sus aplicaciones.
Git para esto: https://mozilla.github.io/pdf.js/
Opciones adicionales: https://github.com/mozilla/pdf.js/wiki/Viewer-options
Simplemente agregue los archivos pdfjs a su directorio de Activos:
Y llámalo de la siguiente manera:
// Assuming you got your pdf file:
File file = new File(Environment.getExternalStorageDirectory() + "/test.pdf");
webview = (WebView) findViewById(R.id.webview);
WebSettings settings = webview.getSettings();
settings.setJavaScriptEnabled(true);
settings.setAllowFileAccessFromFileURLs(true);
settings.setAllowUniversalAccessFromFileURLs(true);
settings.setBuiltInZoomControls(true);
webview.setWebChromeClient(new WebChromeClient());
webview.loadUrl("file:///android_asset/pdfjs/web/viewer.html?file=" + file.getAbsolutePath());
Lo bueno: si quieres reducir la cantidad de funcionalidades / controles. Vaya al archivo Assets / pdfjs / web / viewer.html y marque ciertos controles como ocultos. Con
style="display: none;"
Por ejemplo, si no le gusta la barra de herramientas correcta:
<div id="toolbarViewerRight" style="display: none;">...</div>
Actualización: Esto abrirá la aplicación incorporada (Visor de PDF) para mostrar el archivo pdf si OS> = Marshmallow (API 23); de lo contrario, abrirá el navegador para mostrar el pdf usando el servidor “docs.google.com”.
WebView webView = new WebView(this);
String url = "http://www.pdf995.com/samples/pdf.pdf";
// Support all types of OS versions.
if(android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
webView.loadUrl(url); // This will open it with a built-in PDF viewer app.
else
webView.loadUrl("http://docs.google.com/viewerng/viewer?url="+ url); // This will open it with a browser. On Android 5.0 (Api 21 - Lollipop) and bellow.
// Set Download listener.
webView.setDownloadListener((url1, userAgent, contentDisposition, mimetype, contentLength)
-> startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url1))));