我们正在尝试允许用户在Web应用程序(WebView)中下载/显示PDF文件
HTML很简单
<iframe src="path/to/pdf" />
在标准的Android浏览器中,一切正常 - 点击链接时,浏览器允许显示PDF或下载...(内容类型为application / pdf)
使用网页浏览时,我们得不到相同的结果 - 显示空白页面(可能是新标签未正确打开?!)
注意 - 我们无法使用Google Viewer - PDF位于用户禁区(需要会话) - 因此我们无法提供PDF的公开链接,这是Google Viewer工作所必需的。
我们如何让webview像常规浏览器一样工作?
答案 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);