-1

Я пытаюсь загрузить URL-адрес в WebView, имеющем ссылку .pdf. Ссылка не отображается на устройствах JELLY_BEAN [Проверено на 4.1, 4.1.1 & 4.2] Однако эта ссылка видна на всех устройствах KITKAT и выше.Ссылки PDF не отображаются в API андроида WebView ниже 19

Вот код:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.directory_browser); 
    webView = (ExtendedWebView) findViewById(R.id.webBrowser); 
    webSettings = webView.getSettings(); 
    progressBar = (ProgressBar) findViewById(R.id.browserProgressBar); 
    progressTextView = (TextView) findViewById(R.id.browserProgressText); 
    preparewebView(); 
    webView.loadUrl(getIntent().getStringExtra("medicalUrl")); 

} 

private void preparewebView() { 
    webSettings.setJavaScriptEnabled(true); 
    webSettings.setBuiltInZoomControls(true); 
    webSettings.setAllowFileAccess(true); 
    webSettings.setDomStorageEnabled(true); 
    webView.requestFocusFromTouch(); 
    webView.setInitialScale(getResources().getInteger(R.integer.medical_webview_initialScale)); 
    webSettings.setBuiltInZoomControls(false); 
    webView.setPadding(0, 0, 0, 0); 
    webView.getSettings().setTextZoom(100); 
    webView.getSettings().setRenderPriority(RenderPriority.HIGH); 
    webView.setWebViewClient(new WebViewClient() { 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      return super.shouldOverrideUrlLoading(view, url); 
     } 
     @Override 
     public void onPageStarted(WebView view, String url, Bitmap favicon) { 
      //Decide whether to set a download listener 
      String prefix = com.theteamie.android.uwc.Webservice.URL.getUwcseaWebappDownloadUrl(); 
      if (!url.startsWith(prefix)){ 
       Log.v("WebViewClient", "Appending downloader"); 
       view.setDownloadListener(new Downloader()); 
      } 
      super.onPageStarted(view, url, favicon); 
     } 
    }); 
    webView.setWebChromeClient(new WebChromeClient() { 
     public void onProgressChanged(WebView view, int progress) { 
      // Activities and WebViews measure progress with different 
      // scales. 
      // The progress meter will automatically disappear when we 
      // reach 100% 
      try { 
       String progressText = getResources().getString(R.string.loading) + "... "; 
       if (progress != 100) { 
        progressBar.setVisibility(ProgressBar.VISIBLE); 
        progressBar.setProgress(progress); 
        progressTextView.setVisibility(TextView.VISIBLE); 
        progressTextView.setText(progressText + Integer.toString(progress)); 
       } else { 
        progressBar.setVisibility(ProgressBar.GONE); 
        progressTextView.setVisibility(TextView.GONE); 
       } 
      } catch (IllegalStateException e) { 
       Log.e(TAG, Log.getStackTraceString(e)); 
      } 
     } 

     @Override 
     public void onReceivedTitle(WebView view, String title) { 
      super.onReceivedTitle(view, title); 
     } 
    }); 
} 

Любые предложения, что может быть причиной, почему ссылка не отображается в WebView для этих устройств. Благодаря

+0

ли найти ответ, я сталкиваюсь такая же проблема. – RDY

+0

Извините, я не нашел решение. Нужно было перенаправить на веб-браузер, чтобы он работал. – Priya

+0

ОК. Я использую MuPDF для ниже Kitkat и Webview PDF.js для Kitkat и выше. https://mozilla.github.io/pdf.js/ – RDY

ответ

0

попробовать этот способ может это поможет вам

webview.getSettings().setJavaScriptEnabled(true); 
    String pdf = "YourLink.pdf"; 
    webview.loadUrl("http://docs.google.com/gview?embedded=true&url=" + pdf); 
+0

u можете использовать документы Google для загрузки PDF ... –

0

попробовать, как это: -

webview.getSettings().setJavaScriptEnabled(true); 
      webview.setWebViewClient(new WebViewClient() { 
      public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      view.loadUrl(url); 
      return true; 
       } 
      }); 
       webview.loadUrl(your_url);