【问题标题】:Can't open a local PDF in webview using file://无法使用 file:// 在 webview 中打开本地 PDF
【发布时间】:2013-07-25 12:44:18
【问题描述】:

我需要在不使用 Google Docs 的情况下在 webwiev 中显示位于我的应用程序目录中的 PDF 文件。

这是我的 webview 代码:

public void OpenPDF() {
WebView webview = new WebView(this); 
    setContentView(webview);
    webview.getSettings().setJavaScriptEnabled(true); 
    webview.loadUrl("file://mnt/data/data/com.example.android/files/Docs/test.pdf");;
}

我得到一个空白的 webview 而不是下面的代码作品

public void OpenPDF() {
WebView webview = new WebView(this); 
    setContentView(webview);
    webview.getSettings().setJavaScriptEnabled(true); 
    webview.loadUrl("file://mnt/data/data/com.example.android/files/Docs/test.html");  
}

我直接在我的网络浏览器中使用file://mnt/data/data/com.example.android/files/Docs/test.pdftest.html 进行了测试,它对两者都有效。我安装了一个 PDF 阅读器。

07-25 17:09:07.967: W/webcore(11347): java.lang.Throwable: EventHub.removeMessages(int what = 107) is not supported before the WebViewCore is set up.
07-25 17:09:07.967: W/webcore(11347):   at android.webkit.WebViewCore$EventHub.removeMessages(WebViewCore.java:1683)
07-25 17:09:07.967: W/webcore(11347):   at android.webkit.WebViewCore$EventHub.access$7900(WebViewCore.java:926)
07-25 17:09:07.967: W/webcore(11347):   at android.webkit.WebViewCore.removeMessages(WebViewCore.java:1795)
07-25 17:09:07.967: W/webcore(11347):   at android.webkit.WebView.sendOurVisibleRect(WebView.java:2917)
07-25 17:09:07.967: W/webcore(11347):   at android.webkit.ZoomManager.setZoomScale(ZoomManager.java:593)
07-25 17:09:07.967: W/webcore(11347):   at android.webkit.ZoomManager.access$1700(ZoomManager.java:49)
07-25 17:09:07.967: W/webcore(11347):   at android.webkit.ZoomManager$PostScale.run(ZoomManager.java:984)
07-25 17:09:07.967: W/webcore(11347):   at android.os.Handler.handleCallback(Handler.java:605)
07-25 17:09:07.967: W/webcore(11347):   at android.os.Handler.dispatchMessage(Handler.java:92)
07-25 17:09:07.967: W/webcore(11347):   at android.os.Looper.loop(Looper.java:137)
07-25 17:09:07.967: W/webcore(11347):   at android.app.ActivityThread.main(ActivityThread.java:4424)
07-25 17:09:07.967: W/webcore(11347):   at java.lang.reflect.Method.invokeNative(Native Method)
07-25 17:09:07.967: W/webcore(11347):   at java.lang.reflect.Method.invoke(Method.java:511)
07-25 17:09:07.967: W/webcore(11347):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
07-25 17:09:07.967: W/webcore(11347):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
07-25 17:09:07.967: W/webcore(11347):   at dalvik.system.NativeStart.main(Native Method)

关于为什么只有 pdf 文件无法打开的任何想法?

【问题讨论】:

    标签: android android-webview


    【解决方案1】:

    他们似乎已经在Open Local Html File in Webview - Android的堆栈溢出中回答了您的问题

    总结一下:在实际路径之前使用 file:/// 应该可以解决除 .pdf 文件之外的所有问题

    Webview在android中不支持PDF :(。需要根据不同的来源使用google doc。

    【讨论】:

    • file:/// 适用于 test.html 但没有 /mnt file:///data/data/com.example.android/files/Docs/test.html"); 对于pdf...
    • 像这个文件一样使用 5 / 斜线:////mnt/data/data/com.example.android/files/Docs/test.html
    • 当我尝试打开 pdf 文件时,我在顶部添加了 eclipse 日志
    • 很遗憾,Android 中的 Webview 不支持 PDF。您需要使用谷歌文档。
    • 该死...我可以在我的应用程序中调用 adobe reader 来离线显示我的 pdf 吗?
    【解决方案2】:

    我认为你应该尝试使用 3 个斜线,就像这样:

    webview.loadUrl("file:///mnt/data/data/com.example.android/files/Docs/test.pdf");
    

    【讨论】:

    • @AlfieHanssen 你有没有找到任何解决方案来打开本地 pdf 文件
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-07
    • 2021-05-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-19
    • 2012-07-21
    • 1970-01-01
    相关资源
    最近更新 更多