2013-11-24 14 views
1

Я пытаюсь разработать приложение для Android, которое может просматривать файл PDF с сервера. Я редактировал свой код. Проверьте это.читать 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

Использование localhost? – Nizam

+0

Я пробовал использовать localhost. это не работает. – user3004033

ответ

1

При обращении к localhost из эмулятора используйте http://10.0.2.2/ вместо локального ip.
Так что изменения в коде будет

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

Кроме того, это будет работать только с эмулятором. Для реального устройства вам нужен настоящий сервер.

ОБНОВЛЕНИЕ:
Я проверил ваш код. Он работает только для реального сервера. Похоже, что «google docs» не может обращаться к файлам localhost. Итак, проверьте, используя настоящий сервер. Есть много бесплатных сайтов хостинга, которые вы можете использовать для целей тестирования.

Joomla не является сервером. Joomla - это content management system (CMS). Вы установили Joomla в свой «localhost», который является только имитацией сервера, а не реальным сервером (один из сайтов бесплатного хостинга - freeHosting). Зарегистрируйтесь на реальном сервере (можете использовать бесплатный хостинг на данный момент), получите свой собственный URL-адрес и загрузите 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-url вместо перенаправления на google docs, но ничто из этого не работает. У меня есть интернет-разрешение также в моем манифесте. Пожалуйста, помогите мне. – user3004033

+0

Мне действительно нужно сделать это сейчас. Не могли бы вы помочь мне найти решение? – user3004033

+0

вы поняли? Вы можете протестировать его, используя: 'https: //docs.google.com/gview? Embedded = true & url = nizam.hostingsiteforfree.com/doc_8.pdf' – Nizam

Смежные вопросы