Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android中从服务器打开PDF文件_Android_Pdf_Android Webview - Fatal编程技术网

如何在android中从服务器打开PDF文件

如何在android中从服务器打开PDF文件,android,pdf,android-webview,Android,Pdf,Android Webview,我需要一个URL=”http://www.example/Open.pdf“ 现在,在我的android应用程序中,我想直接在默认的PDF查看器中打开这个PDF文件 当我在网页上单击此链接时,用户应该会看到一个默认的PDF查看器,该查看器随此文档一起打开 注意:此文件不应存储在SD卡上。 如何执行此实现?您可以使用googleDocs在WebView中查看pdf WebView webView = (WebView) findViewById(R.id.my_webview); webView.

我需要一个
URL=”http://www.example/Open.pdf“

现在,在我的android应用程序中,我想直接在默认的
PDF查看器中打开这个
PDF
文件

当我在
网页
上单击此链接时,用户应该会看到一个默认的PDF查看器,该查看器随此文档一起打开

注意:此文件不应存储在
SD卡上。


如何执行此实现?

您可以使用
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");

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

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

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

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


您可以使用
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");

除了使用查看pdf文件,您还有其他解决方案吗?我们可以在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);

这里发生的是你用谷歌文档打开PDF文件使用上述方法的最大优点是延迟加载PDF。不管PDF有多重。谷歌文档会处理好的。

谢谢你的帖子。但我希望它能在默认的PDF浏览器中打开,比如adobe,而不是谷歌文档。