【问题标题】:How to open a PDF file from server in android如何在android中从服务器打开PDF文件
【发布时间】:2012-01-24 09:23:35
【问题描述】:

我有一个URL = "http://www.example/Open.pdf"的需求

现在我想从我的 android 应用程序中直接在默认的 PDF viewer 中打开这个 PDF 文件。

当我点击webpage 上的此链接时,用户应该会看到使用此文档打开的默认 PDF 查看器。

注意:此文件不应存储在SD card.

我该如何进行此实施?

【问题讨论】:

    标签: android pdf android-webview


    【解决方案1】:

    您可以使用googleDocs查看WebView中的pdf。

    WebView webView = (WebView) findViewById(R.id.my_webview);
    webView.setWebViewClient(new MyWebViewClient());
    webView.addView(webView.getZoomControls());
    webView.getSettings().setJavaScriptEnabled(true);
    webView.loadUrl("http://docs.google.com/gview?embedded=true&url=http://myurl.com/demo.pdf");
    

    【讨论】:

    • 感谢拉利特的帖子。但我希望它在 adobe 等默认 PDF 查看器中打开,而不是在谷歌文档中打开。
    【解决方案2】:

    您无法从应用程序中打开默认 PDF 视图。

    如果您的文件在服务器上,并且您想在不下载的情况下打开它,那么这也可能会带来更大的安全问题。如果像默认 adobe reader 这样的外部应用程序可以访问您服务器上的内容,那么这完全破坏了安全框架。

    因此,最好的选择是启动一个新的浏览器或 webview 实例,并在 google docs 中向用户显示 PDF 文档。

    这样用户可以阅读文档并返回到应用程序的最近状态。

    【讨论】:

      【解决方案3】:

      您可以使用googleDocs查看WebView中的pdf。

      WebView webView = (WebView) findViewById(R.id.my_webview);
      webView.setWebViewClient(new MyWebViewClient());
      webView.addView(webView.getZoomControls());
      webView.getSettings().setJavaScriptEnabled(true);
      webView.loadUrl("http://docs.google.com/gview?embedded=true&url=http://myurl.com/demo.pdf");
      

      除了使用http://docs.google.com/gview?embedded=true&url=http://myurl.com/demo.pdf查看pdf文件之外,您还有其他解决方案

      【讨论】:

        【解决方案4】:

        我们可以在 webview 中打开 PDF 文件而不用缓存它。在"onCreate"方法中写下代码。

        工作代码:

            String url = "http://www.example.com/abc.pdf";
            final String googleDocsUrl = "http://docs.google.com/viewer?url=";
        
        
            WebView mWebView=new WebView(this);
            mWebView.getSettings().setJavaScriptEnabled(true);
            mWebView.getSettings().setPluginsEnabled(true);
        
            mWebView.setWebViewClient(new WebViewClient() {
                public boolean shouldOverrideUrlLoading(WebView view, String url){
        
                    view.loadUrl(url);
                    return false; // then it is not handled by default action
               }
            });
        
        
            mWebView.loadUrl((googleDocsUrl + url));
        
            setContentView(mWebView);
        

        这里发生的是您使用 Google 文档打开 PDF。使用上述方法的最大优势PDF的延迟加载。 PDF 的重量无关紧要。谷歌文档会处理它。

        【讨论】:

          猜你喜欢
          • 2012-07-27
          • 2014-01-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-09-03
          • 2020-05-13
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多