【问题标题】:How to open local pdf file in WebView Android Studio如何在 WebView Android Studio 中打开本地 pdf 文件
【发布时间】:2018-08-19 22:27:36
【问题描述】:

我知道这个问题已经被问过很多次了,但我仍然无法让它发挥作用。我在原始文件夹中有一个 pdf,我正在尝试使用“https://drive.google.com/viewerng/viewer?embedded=true&url=”在 webview 中打开它以在 webview 中打开它。

我认为我的问题是我无法获得 pdf 文件的正确路径。我已经尝试了三种不同的方式,或者 webview 说我收到错误(url 不存在),或者它“打开”pdf,但是 webview 在中间显示这个文本,“没有可用的预览” .

这是我尝试获取文件路径的三种方式。

  1. “android.resource://com.an.example/raw/filename”
  2. "android.resource://" + getPackageName() + "/" + R.raw.filename;
  3. Environment.getExternalStorageDirectory() + "/filename.pdf"

对于方法 1 和 3,我尝试了 "filename" 和 "filename.pdf"

这些都不允许 pdf 在 webview 中加载。下面是我用来加载 pdf 的代码。 (注意:如果我使用 web url 而不是本地文件,此方法确实有效)

    webview = (WebView) findViewById(R.id.webView);
    webview.getSettings().setJavaScriptEnabled(true);

    webview.getSettings().setBuiltInZoomControls(true);

    String pdf = "one_of_the_above_methods";
    webview.loadUrl("https://drive.google.com/viewerng/viewer?embedded=true&url=" + pdf);

我做错了什么?有没有更好的方法在我的应用程序中加载本地 pdf 而不会占用整个活动页面?

【问题讨论】:

    标签: java android pdf webview


    【解决方案1】:

    我在 raw 文件夹中有一个 pdf,我正在尝试使用“https://drive.google.com/viewerng/viewer?embedded=true&url=”在 webview 中打开它以在 webview 中打开它。

    这是不可能的。

    有没有更好的方法在我的应用程序中加载本地 pdf 而不会占用整个活动页面?

    最好的办法是根本不将其加载到您的应用中。通过ACTION_VIEW使用用户首选的PDF查看应用程序。

    除此之外,您还可以在 Android 4.4+ 上使用 PDF.js 的略微修改版本。或者,use AndroidPdfViewer 在更广泛的 Android 版本上,尽管它会使您的 APK 更大。请参阅this blog post 了解有关这些和其他(更差)选项的更多背景信息。

    此外,以下是演示示例应用程序:

    【讨论】:

      猜你喜欢
      • 2012-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-02
      • 2013-10-07
      • 2018-10-25
      • 2018-07-25
      相关资源
      最近更新 更多