2013-07-25 5 views
2

Мне нужно отобразить PDF-файл, расположенный в моем приложении, в веб-браузере без использования Документов Google.Невозможно открыть локальный PDF-файл в webview с использованием файла: //

Это мой код для 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 не будут открываться?

ответ

2

Их, кажется, ответ на ваш вопрос уже переполнение стека в Open Local Html File in Webview - Android

подвести итог: Использование файла: /// прежде чем ваш реальный путь должен решить вашу проблему для всего, кроме .pdf файлов

Webview не поддерживает PDF в Android :(вы должны использовать Google документ в соответствии с различными источниками

+0

файл: /// работает с test.html, но без файла/mnt: ///data/data/com.example.android/files/Docs/test.html "); Еще пустое для pdf ... – Wildchild7

+0

Используйте 5/slashes, как этот файл: /////mnt/data/data/com.example.android/files/Docs/test.html – legrandviking

+0

Без изменений с 5/slashes. – Wildchild7

-1

Я думаю, вы должны попробовать с 3 косыми чертами, как это:..

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

Это не сработает ... –

+0

@AlfieHanssen нашел какое-либо решение для открытия локального файла pdf – Dory

+0

Я выбрал простейшее решение, которое должно было использовать подход Документов Google ... –

Смежные вопросы