2

如果我启用如下设置,则双指缩放在加载常规 url 的 webView 上工作正常,

myWebView.getSettings().setBuiltInZoomControls(true); //this works fine.

问题是,

我有一个使用 PDF 加载 url 的 webview。我正在使用 google docs viewer 加载此 url 以避免将 PDF 下载到设备。就像是,

'" http://docs.google.com/gview?embedded=true&url=http://www.abc.com/xxxxxyyyyyxz.pdf "'

在 Web 视图上加载此 URL 会显示带有内置缩放选项的 pdf,单击按钮或双击以放大,单击按钮以缩小。

与捏缩放相比,这不是一个很好的用户体验。

到目前为止,我已经尝试了很多解决方案,但还没有奏效。我尝试了以下方法,

  1. 安卓捏开源库,它适用于加载带有图像的 url 的地图和 web 视图。
  2. 教程很有帮助,但无法使其适用于我的 webView。

如果有人有任何其他有用的信息供我试用,请分享。

4

3 回答 3

3

老问题,但这是我找到的解决方案。

        WebView mWebView = (WebView) findViewById(R.id.webView);
        mWebView.getSettings().setJavaScriptEnabled(true);
        WebSettings webSettings = mWebView.getSettings();
        webSettings.setBuiltInZoomControls(true);
        webSettings.setSupportZoom(true);

希望这可以帮助!

于 2015-11-18T15:59:19.270 回答
2

众所周知,PDF 在 Android 中难以交互。你可以:

1.) 推出您自己的支持 PDF 的 WebView 实现

我不建议这样做。我的典型逻辑是,如果谷歌在足够长的时间内没有这样做,那么要么很难做到,要么电池效率不高。在任何情况下,您都可能不得不亲自动手使用 Android NDK,以使您的实现快速高效。

http://gurushya.com/customizing-android-webview/

2.) 将您的 PDF 转换为一系列位图

对于此选项,您需要解析网页内容以找到必要的 pdf,将 PDF 的每张幻灯片转换为位图,并在简单的 ImageSlider 中显示每个位图。我没有时间尝试这种方法,但它似乎可以工作(虽然可能不是很快)。这个stackoverflow答案可能会有所帮助:

需要帮助将 Pdf 页面转换为 Android Java 中的位图

3.) 遵守约定 - 推荐

这可能是您最好的选择。使用 Google Docs 有点像 hack。当您将 PDF 传递给它时,您实际上是在打开一个带有糟糕移动支持的 JavaScript PDF 阅读器。在 Android 中处理 PDF 的典型方法是检查用户是否安装了 PDF 阅读器,如果有,则使用该阅读器打开 PDF。该 PDF 阅读器很可能具有缩放功能。出于性能原因,Android 很可能以这种方式实现,并且可以在更广泛的设备上工作。

请记住,虽然您的普通 iOS 用户可能不习惯这样做;Android 用户在其他应用程序中打开文件非常舒服。在 PDF 阅读器中打开 PDF 使用户能够选择要使用的 PDF 阅读器。通过这样做,您可以为读者提供更多的选择,而不仅仅是捏缩放(例如索引搜索、突出显示、快速导航 UI),具体取决于他们安装的应用程序。如果他们没有 PDF 阅读器?推荐一个免费的并将它们链接到您选择的 Android 商店!

在 Android 上使用 Java 渲染 PDF 文件

于 2013-06-11T19:16:46.567 回答
0

好吧,与其使用 WebView 向用户显示您的 PDF,也许使用 PDF-View 会更有意义。这是我在谷歌搜索后找到的一个库,但我从未使用过它,所以我无法判断它的工作情况:https ://code.google.com/p/apv/

编辑:这是另一个带有 PDF-libs 列表的答案:https ://stackoverflow.com/a/6729135/1219113

于 2013-06-11T17:54:19.217 回答