2011-12-20 50 views
2

我有一個要求,那裏是一個URL = "http://www.example/Open.pdf"如何打開從服務器的PDF文件中的android

現在從我的Android應用程序,我想直接在默認PDF viewer打開此文件PDF

當我單擊webpage上的此鏈接時,用戶應該看到一個用此文檔打開的默認PDF查看器。

注意:此文件不應被存儲在SD card.

如何進行此實現?

回答

1

您無法從應用程序打開默認PDF視圖。

如果您的文件位於服務器上,並且您希望在不下載的情況下打開它,那麼這可能會帶來更大的安全隱患。如果默認的Adobe Reader等外部應用程序可以訪問服務器上的內容,那麼這完全破壞了安全框架。

因此,最好的選擇是啓動瀏覽器或webview的新實例,並向用戶顯示Google文檔中的PDF文檔。

這樣用戶可以讀取文檔並返回到最近的應用程序狀態。

1

您可以使用googleDocsWebView中查看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"); 
+0

感謝Lalit的發帖。但我希望它能在Adobe PDF文件瀏覽器中打開,而不是在Adobe文檔中打開。 – EnthuDeveloper 2011-12-20 12:05:21

1

您可以查看使用googleDocsWebView的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

2

我們可以打開web視圖PDF文件,而無需將其高速緩存查看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無論多麼重要。 Google文檔負責處理它。

相關問題