如果我按以下方式启用设置,则在加载常规网址的webView上进行缩放缩放效果正常,
myWebView.getSettings().setBuiltInZoomControls(true); //this works fine.
问题是,
我有一个webview,用于加载带有PDF的网址。我正在使用谷歌文档查看器加载此网址,以避免将PDF下载到设备。像,
'“http://docs.google.com/gview?embedded=true&url=http://www.abc.com/xxxxxyyyyyxz.pdf”'
在网页视图中加载此网址会显示带有内置缩放选项的pdf,按住鼠标按钮或双击可放大并按下按钮可缩小。
与捏缩放相比,这不是一个出色的用户体验。
到目前为止,我已经尝试了很多解决方案,但还没有任何效果。我试过以下,
如果有人有任何其他有用信息供我试用,请分享。
答案 0 :(得分:2)
众所周知,PDF在Android中很难与之互动。你可以:
我不建议这样做。我的典型逻辑是,如果谷歌没有在足够长的时间内完成它,那么要么很难做到,要么电池效率不高。无论如何,您可能不得不亲自动手使用Android NDK,以便快速高效地实施。
http://gurushya.com/customizing-android-webview/
对于此选项,您需要解析网页内容以查找必要的pdf,将PDF的每张幻灯片转换为位图,并在简单的ImageSlider中显示每个位图。我没有时间尝试这种方法,但似乎它可能会起作用(虽然可能不是很快)。此stackoverflow答案可能会有所帮助:
Need help to convert a Pdf page into Bitmap in Android Java
这可能是您最好的选择。使用Google Docs有点像黑客。当你传递PDF时,你实际上是在打开一个带有糟糕移动支持的javascript PDF阅读器。在Android中处理PDF的典型方法是检查用户是否安装了PDF阅读器并打开PDF(如果有)。 PDF阅读器很可能具有缩放缩放功能。 Android可能出于性能原因以这种方式实现,并且可以在更广泛的设备范围内工作。
请注意,虽然您的普通iOS用户可能不习惯这样做; Android用户可以轻松地在其他应用中打开文件。在PDF阅读器中打开PDF,用户可以选择使用哪种PDF阅读器。通过这样做,您可以为读者提供更多选项,而不仅仅是捏缩放(例如索引搜索,突出显示,快速导航UI),具体取决于他们安装的应用程序。如果他们没有PDF阅读器?建议一个免费的,并将它们链接到您选择的Android商店!
答案 1 :(得分:2)
老问题,但这是我找到的解决方案。
WebView mWebView = (WebView) findViewById(R.id.webView);
mWebView.getSettings().setJavaScriptEnabled(true);
WebSettings webSettings = mWebView.getSettings();
webSettings.setBuiltInZoomControls(true);
webSettings.setSupportZoom(true);
希望这有帮助!
答案 2 :(得分:0)
使用PDF-View可能更有意义,而不是使用WebView向用户显示PDF。这是我在Google上搜索后找到的一个库,但我从未使用它,所以我无法判断它的工作原理:https://code.google.com/p/apv/
编辑:这是PDF-lib列表的另一个答案:https://stackoverflow.com/a/6729135/1219113