【问题标题】:Opening a tab with a PDF attachment in a Webview在 Web 视图中打开带有 PDF 附件的选项卡
【发布时间】:2018-02-27 10:01:17
【问题描述】:

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

HTML 很简单

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

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

使用 webview 时,我们没有得到相同的结果 - 显示一个空白页面,(可能新标签页没有正确打开?!)

注意 - 我们无法使用 Google 查看器 - PDF 位于用户受限区域(需要会话) - 因此我们无法提供 PDF 的公共链接,这是 google 查看器工作所必需的。

我们怎样才能让 webview 像普通浏览器一样工作?

【问题讨论】:

  • 到目前为止您尝试过的内容连同问题一起发布。
  • 代码是一个简单的 webview 打开一个 html 页面,其中包含一个 iframe,其中 src 设置为 PDF 位置...在普通的移动浏览器中工作,而不是在 webview 中工作
  • 你是否厌倦了这个链接stackoverflow.com/questions/14578530/…
  • 这是使用谷歌文档查看器,我们不能使用它。为什么 webview 不像普通的 android 浏览器那样与 PDF 交互?
  • 检查有人建议自定义库的另一个答案。

标签: android pdf


【解决方案1】:

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


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


如何配置 webview 运行 css 和 javascript,允许在 webview 中前进和像浏览器一样后退?

这里列出了完整的属性。 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");

【讨论】:

    【解决方案2】:

    您需要附加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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-05
      • 2019-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多