我需要在不使用Google文档的情况下在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.pdf
和test.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文件无法打开的任何想法?
答案 0 :(得分:3)
他们似乎已经在Open Local Html File in Webview - Android
的堆栈溢出中回答了你的问题总结一下:在实际路径之前使用file:///应解决除.pdf文件之外的所有问题
Webview不支持Android中的PDF :(。您需要根据不同的来源使用google doc。
答案 1 :(得分:-1)
我认为你应该尝试使用3个斜杠:
webview.loadUrl("file:///mnt/data/data/com.example.android/files/Docs/test.pdf");