2016-03-08 171 views
0

我正在嘗試使用google文檔打開pdf網址,但是API等級21及以上版本的pdf在移動瀏覽器中打開,並且在下面21中打開。 當我設置任何網站的網址爲相同的網頁視圖,它完全打開應用程序內。Android:Webview在應用程序外部打開pdf url

什麼是確切的問題?

請幫忙。

這是我的WebView代碼:

WebView webviewPDF = (WebView) view.findViewById(R.id.resource8_9_webview); 
     webviewPDF.loadUrl(strUrl); 
     WebSettings webSettings = webviewPDF.getSettings(); 
     webSettings.setJavaScriptEnabled(true); 
     webSettings.setBuiltInZoomControls(true); 
     webSettings.setUseWideViewPort(true); 
     webviewPDF.setWebChromeClient(new WebChromeClient()); 
     webviewPDF.clearSslPreferences(); 

回答

0

的Android不具有舊版本的支持。

試試這個工作對我來說..

webView = (WebView) view.findViewById(R.id.webView); 
webView.setVisibility(View.VISIBLE); 
WebSettings settings = webView.getSettings(); 
settings.setJavaScriptEnabled(true); 

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) //required for running javascript on android 4.1 or later 
    { 
     settings.setAllowFileAccessFromFileURLs(true); 
     settings.setAllowUniversalAccessFromFileURLs(true); 
    } 
settings.setBuiltInZoomControls(true); 
webView.setWebChromeClient(new WebChromeClient()); 
webView.addJavascriptInterface(new MyJavascriptInterface(), "androidInterface"); 

加載PDF

private void loadPdfFile() { 
    String filePAth = getArguments().getString(PDF_FILE_PATH); 
    if (filePAth == null) { 
     return; 
    } 

    Uri path = Uri.parse(filePAth); 

    try { 
     Logger.info("PDF File Path " + path.toString()); 
     InputStream ims = getResources().getAssets().open("pdfviewer/index.html"); 
     String line = getStringFromInputStream(ims); 
     if (line.contains("THE_FILE")) { 
      line = line.replace("THE_FILE", path.toString()); 

      FileOutputStream fileOutputStream = getActivity().openFileOutput("index.html", Context.MODE_PRIVATE); 
      fileOutputStream.write(line.getBytes()); 
     } 
    } catch (IOException e) { 
     Logger.error("Errror on loading pdf file : " + path); 
    } 


    webView.loadUrl("file://" + getActivity().getFilesDir() + "/index.html"); 
    mCurrentPage = 1; 
} 

//轉換的InputStream爲String

private static String getStringFromInputStream(InputStream is) { 

    BufferedReader br = null; 
    StringBuilder sb = new StringBuilder(); 

    String line; 
    try { 

     br = new BufferedReader(new InputStreamReader(is)); 
     while ((line = br.readLine()) != null) { 
      sb.append(line); 
     } 

    } catch (IOException e) { 
     e.printStackTrace(); 
    } finally { 
     if (br != null) { 
      try { 
       br.close(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
    } 

    return sb.toString(); 
} 
-1

這是回答你的問題:

WebView webview = FindViewById<WebView>(Resource.Id.webView1); 
     urlPdf = ("pdf url example "); 
     WebSettings settings = webview.Settings; 
     settings.JavaScriptEnabled = true; 
     webview.LoadUrl("http://drive.google.com/viewerng/viewer?embedded=true&url=" + urlPdf); 
+0

剛剛粘貼一段沒有任何解釋的代碼不是很有用,請解釋它的作用,以及爲什麼這個「是答案」 –

相關問題