我正在尝试使用谷歌文档打开pdf网址,但是对于API级别21及以上版本,pdf在移动浏览器中打开,而在21岁以下则无法打开。 当我将任何网站网址设置为相同的网页浏览时,它会在应用内完全打开。
究竟是什么问题?
请帮忙。
这是我的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 :(得分: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 :(得分:-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);