【问题标题】:loading PDFs into the android webview将 PDF 加载到 android webview 中
【发布时间】:2014-08-27 08:54:47
【问题描述】:

在我的 android 应用程序中,我必须将服务器中的 PDFs 加载到 webview 中。根据堆栈溢出问题,我在加载时使用了 Google DOC 视图。但我的问题是有时它不会在 webview 中显示文件,而在另一种情况下它显示得很好。我无法弄清楚问题所在。但代码似乎没问题。我的代码段如下。

WebViewLable.getSettings().setJavaScriptEnabled(true);    
    WebViewLable.getSettings().setLoadWithOverviewMode(true);
    WebViewLable.getSettings().setUseWideViewPort(true);  

    fullURL=GoogleDOCview+"https://livefarmer.com/labels/"+itemURL;
    WebViewLable.loadUrl(fullURL);

}

private class Callback extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(
            WebView view, String url) {
        return(false);
    }
}

我的网页视图如下。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/app_bg_black"
    android:orientation="vertical" >

    <include
        android:id="@+id/nav_bar"
        android:layout_width="fill_parent"
        layout="@layout/nav_bar" />


    <WebView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/webViewLable"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:windowSoftInputMode="adjustResize" />

</LinearLayout>

这是未显示 pdf 时的 logcat 输出。

这是在 webview 中显示 pdf 时的 logcat 输出。

那么我的代码有什么问题。我怎样才能解决这个问题。 谢谢和问候!

【问题讨论】:

  • 什么是WebViewLable?这甚至是真正的代码吗?什么是GoogleDOCview,什么是itemURL
  • 是的。这是一个真实的代码。我现在正在努力。所以我不能发布整个代码,因为它不属于我。 WebViewLable 是我的网络视图。我正在加载的 PDF 是从服务器获取的。 itemURL 是它们的 URL,GoogleDOCview 是 Google 文档查看器。
  • 在显示 pdf 时 Logcat 没有任何变化..

标签: android pdf webview


【解决方案1】:
String PdfUrl = "http://pdfexample.com/abcd.pdf";
String url = "http://docs.google.com/gview?embedded=true&url=" + PdfUrl;
Log.i(TAG, "PDF URL : " + url);
webView.getSettings().setJavaScriptEnabled(true); 
webView.loadUrl(url);

试试这个

【讨论】:

  • 有时显示,有时不显示。
  • 不,它总是显示它,亲爱的,请试试这个代码
  • 不,亲爱的。它并不总是有效。这些 PDF 仅包含两到三页。它仍然可以正常工作。
  • 你对这个问题有什么想法...... ?????有时它会正确加载 PDF。但我无法跟踪错误。它在 log-cat 中没有显示错误消息。
  • 大家好!这个线程很老了,但我也面临同样的问题:有时 pdf 不会显示在 webview 中(而且这似乎是一种非常随机的行为).. 你找到解决方案了吗?谢谢!
【解决方案2】:

我设法解决上述问题的方法是在 WebView 完成加载后检查内容高度,如果其值为 0,则它会尝试重新加载 url。

        myWebView.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);
                if (view.getContentHeight() == 0) view.loadUrl(url);
            }
        });

【讨论】:

    猜你喜欢
    • 2012-05-18
    • 2015-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-18
    • 1970-01-01
    • 2018-12-25
    相关资源
    最近更新 更多