2013-11-24 216 views
1

我想開發可從服務器查看pdf文件的android應用程序。 我編輯了我的代碼。一探究竟。從服務器讀取pdf文件

下面的代碼:

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

       //String LinkToPDF = "http://127.0.0.1/joomla/images/appletter.pdf"; 
       WebView mWebView=new WebView(MainActivity.this); 
       mWebView.getSettings().setJavaScriptEnabled(true); 
       mWebView.getSettings().setPluginsEnabled(true); 
       mWebView.loadUrl("https://docs.google.com/gview?embedded=true&url=nizam.hostingsiteforfree.com/do‌​c_8.pdf"); 
       setContentView(mWebView); 

      mWebView.setWebViewClient(new WebViewClient() { 
        public boolean shouldOverrideUrlLoading(WebView view, String url) { 
         view.loadUrl(url); 
         return false; 
        } 
       }); 
       } 

沒有錯誤這一點。但是,只要我點擊按鈕「閱讀pdf」就會顯示此內容

「對不起,我們無法在原始來源找到文檔,請驗證文檔仍然存在。」

請幫我擺脫這個問題。任何幫助?

+0

使用本地主機? – Nizam

+0

我嘗試使用本地主機。它不起作用。 – user3004033

回答

1

從模擬器引用localhost時,請使用http://10.0.2.2/而不是本地ip。
因此,在你的代碼的變化將是

String LinkToPDF = "http://10.0.2.2/joomla/images/appletter.pdf"; 

此外,這將與模擬器才能正常工作。對於真實的設備,你需要真正的服務器。

更新:
我測試了你的代碼。它僅適用於真正的服務器。看起來像'谷歌文檔'不能訪問本地主機文件。所以,使用真正的服務器進行測試。有許多免費的託管網站,您可以使用它們進行測試。

Joomla不是服務器。 Joomla是content management system (CMS)。你在你的'本地主機'中安裝了Joomla,它只是模仿服務器,而不是真正的服務器(免費託管站點之一 - freeHosting)。在真實服務器上註冊(現在可以使用免費託管),獲取自己的網址,並將pdf上傳到那裏。如果您需要更多關於託管的詳細信息,請隨時給我發郵件。

現在,一個重要部分: - SSL證書。免費託管可能沒有有效的SSL。因此,請參考以下內容:

String LinkToPDF = "http://nizam.hostingsiteforfree.com/doc_8.pdf"; 
    WebView webview=new WebView(MainActivity.this); 
    webview.getSettings().setJavaScriptEnabled(true); 

    final Activity activity = this; 
    webview.setWebViewClient(new WebViewClient() { 
     public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { 
     Toast.makeText(activity, "Oh no! " + description, Toast.LENGTH_SHORT).show(); 
     } 
     @Override 
     public void onReceivedSslError(WebView view, 
       SslErrorHandler handler, SslError error) { 
      Log.d("Nzm", ""+error.getPrimaryError()); 
      Toast.makeText(activity, "Skipping SSL error", Toast.LENGTH_SHORT).show(); 
      handler.proceed(); 
     } 
    }); 

    setContentView(webview); 
    webview.loadUrl("https://docs.google.com/gview?embedded=true&url=nizam.hostingsiteforfree.com/doc_8.pdf"); 
+0

我試過10.0.2.2,但仍然無法正常工作。我也嘗試直接打開它的PDF網址,而不是重定向到谷歌文檔,但沒有一個工作。我的清單中也有互聯網許可。請幫幫我。 – user3004033

+0

我現在真的需要這樣做。你能幫我找到解決辦法嗎? – user3004033

+0

你明白了嗎?你可以使用:https://docs.google.com/gview?embedded = true&url = nizam.hostingsiteforfree.com/doc_8.pdf' – Nizam