【问题标题】:load content of pdf in Webview在 Webview 中加载 pdf 的内容
【发布时间】:2015-05-28 20:50:56
【问题描述】:

我想在WebView 中显示一个pdf 文件的内容。

问题: 当我启动WebView 时,一个新对话框正在打开,无论我是想在浏览器中还是在 pdf 查看器中加载 pdf。但是我想直接在WebView中加载内容。我也尝试使用前缀 url 嵌入内容,但随后显示:没有可用的预览。

我的代码:

public class Changelog_View extends ActionBarActivity {

@Override
protected void onCreate ( Bundle savedInstanceState ) {

    super.onCreate(savedInstanceState);



    String myPdfUrl = "https://onedrive.live.com/download?cid=DB700463EBEC6BC9&resid=DB700463EBEC6BC9%2120693&authkey=ALJ-NvyQqMdACpA&em=2";
    String url = "http://docs.google.com/gview?embedded=true&url=" + myPdfUrl;

    WebView webview = new WebView(this);

    webview.getSettings().setJavaScriptEnabled(true);
    webview.loadUrl(url);


    setContentView(webview);
}
}

我现在用 android-pdfView 库用这个代码试了一下:

 @Override
protected void onCreate ( Bundle savedInstanceState ) {

    super.onCreate ( savedInstanceState );

   com.joanzapata.pdfview.PDFView pdfView = new com.joanzapata.pdfview.PDFView ( getApplicationContext (), null );
    String myPdfUrl = "https://onedrive.live.com/download?cid=DB700463EBEC6BC9&resid=DB700463EBEC6BC9%2120693&authkey=ALJ-NvyQqMdACpA&em=2";

    pdfView.fromAsset(myPdfUrl)
            .defaultPage(1)
            .showMinimap(false)
            .enableSwipe(true)
            .onLoad(this)
            .onPageChange ( new OnPageChangeListener () {
                @Override
                public void onPageChanged ( int i, int i1 ) {

                }
            } )
            .load();

然后FileNotFoundException出现在地址:https://onedrive.live.com/download?cid=DB700463EBEC6BC9&resid=DB700463EBEC6BC9%2120693&authkey=ALJ-NvyQqMdACpA&em=2。该地址直接引用了我的 onedrive 帐户中的 pdf 文件。所以当我在浏览器中输入这个链接时,pdf文件正在下载。

那么如何在我的应用程序中使用android-pdfView 库显示来自地址:https://onedrive.live.com/download?cid=DB700463EBEC6BC9&resid=DB700463EBEC6BC9%2120693&authkey=ALJ-NvyQqMdACpA&em=2 的 pdf 文件?

谢谢。

【问题讨论】:

  • WebView 无法自行显示 PDF。
  • 好的,谢谢。是否有可能将任何其他带有格式化文本的文件加载到 web 视图中?还是我必须使用图书馆才能做到这一点?
  • 您可以使用谷歌文档在stackoverflow.com/questions/12803701/… 获得一些帮助
  • "是否有可能将任何其他带有格式化文本的文件加载到 web 视图中?" -- WebView 可以显示 HTML。许多开发人员发现 HTML 是格式化文本的合理格式。
  • 请看我编辑的帖子

标签: android pdf webview


【解决方案1】:

要在 Webview 中打开 pdf,最好通过 google doc 服务显示 pdf

WebView webView=(WebView)findViewById(R.id.webView);
webView.getSettings().setLoadsImagesAutomatically(true);
        webView.getSettings().setJavaScriptEnabled(true);
        webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
        webView.getSettings().setLoadWithOverviewMode(true);
        webView.getSettings().setUseWideViewPort(true);
        webView.loadUrl("http://drive.google.com/viewerng/viewer?embedded=true&url=" + REPLACE_WITH_YOUR_LINK);

【讨论】:

    【解决方案2】:

    如果没有 WebViewClient,那么它只会在不同的窗口中打开。

    mWebView.setWebViewClient(new WebViewClient());
    

    【讨论】:

      猜你喜欢
      • 2018-07-15
      • 2012-05-18
      • 1970-01-01
      • 2019-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多