2

Google ドキュメントを使用せずに、アプリ ディレクトリにある PDF ファイルを webwiev で表示する必要があります。

これは、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とを使用して Web ブラウザーで直接テストした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ファイルだけが開かないのかについてのアイデアはありますか?

4

2 に答える 2

3

彼らは、 Open Local Html File in Webview - Androidですでにスタックオーバーフローにあるあなたの質問に対する答えのようです

要約すると、実際のパスの前に file:/// を使用すると、.pdf ファイル以外のすべての問題が解決するはずです。

Webview は Android で PDF をサポートしていません :(。さまざまなソースに応じて Google ドキュメントを使用する必要があります。

于 2013-07-25T14:43:52.333 に答える
-1

次のように、3 つのスラッシュを試してみるべきだと思います。

webview.loadUrl("file:///mnt/data/data/com.example.android/files/Docs/test.pdf");
于 2013-07-25T14:44:29.707 に答える