在Webview中打开带有PDF附件的标签

时间:2018-02-27 10:01:18

标签: android pdf

我们正在尝试允许用户在Web应用程序(WebView)中下载/显示PDF文件

HTML很简单

<iframe src="path/to/pdf" />

在标准的Android浏览器中,一切正常 - 点击链接时,浏览器允许显示PDF或下载...(内容类型为application / pdf)

使用网页浏览时,我们得不到相同的结果 - 显示空白页面(可能是新标签未正确打开?!)

注意 - 我们无法使用Google Viewer - PDF位于用户禁区(需要会话) - 因此我们无法提供PDF的公开链接,这是Google Viewer工作所必需的。

我们如何让webview像常规浏览器一样工作?

2 个答案:

答案 0 :(得分:0)

HTML很简单,但它包含许多css,javascript / jquery代码依赖项。哪个浏览器相应地渲染,javascript可以在浏览器上运行。由于浏览器预先配置为运行javascript并呈现html css。

Android webview未预先配置为运行javascript,css。它只能渲染html。所以它在webview中看起来很奇怪,因为它没有css呈现并且不运行javascript

如何配置webview以运行css和javascript,允许在webview中继续前进并像浏览器一样使用backword?

以下是列出的完整属性。 Android developers

然后你的webview可以让用户下载那里的文件..

WebView mWebView = findViewById(R.id.myWebView);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.setWebChromeClient(new MyWebChromeClient((Activity)mContext));
mWebView.addJavascriptInterface(new testClass(), "jsinterface");
mWebView.loadUrl("UrlToLoad");

答案 1 :(得分:0)

  
    

您需要附加http://docs.google.com/gview?embedded=true&url=以在Webview中打开PDF文件

  
String docInitialUrl = "http://docs.google.com/gview?embedded=true&url="+docUrl;
    webView.getSettings().setBuiltInZoomControls(true);
    webView.getSettings().setSupportZoom(true);
    webView.setInitialScale(100);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setLoadsImagesAutomatically(true);
    webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
    webView.setWebViewClient(new WebViewClient());
    webView.loadUrl(docInitialUrl);