在没有 .pdf 内容 webview 的情况下加载时无法预览
No Preview available when I load without .pdf content webview
我尝试在 webview 中将我的内容加载为 PDF android 但它显示无可用预览我该如何解决
我的代码在这里:-
webview = (WebView) findViewById(R.id.webview);
webview.getSettings().setLoadWithOverviewMode(true);
webview.getSettings().setUseWideViewPort(true);
webview.getSettings().setJavaScriptEnabled(true);
webview.getSettings().setPluginState(WebSettings.PluginState.ON);
webview.setWebChromeClient(new WebChromeClient());
String URLPATH = "http://myaccount365.in/public/oddeve78/report/ledger/11/summaryLedger?fromDate=01/11/2019&toDate=09/12/2019";
String url = "https://docs.google.com/gview?embedded=true&url=" + URLPATH;
webview.loadUrl(url);
String URLPATH = "http://www.pdf995.com/samples/pdf.pdf";
String url = "https://docs.google.com/gview?embedded=true&url=" + URLPATH;
webview.loadUrl(url);
我正在使用它并为我工作:Check Here
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
WebView webView=new WebView(MainActivity.this);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setPluginState(WebSettings.PluginState.ON);
//---you need this to prevent the webview from
// launching another browser when a url
// redirection occurs---
webView.setWebViewClient(new Callback());
String pdfURL = "http://www.expertagent.co.uk/asp/in4glestates/{16D968D6-198E-4E33-88F4-8A85731CE605}/{05c36123-4df0-4d7d-811c-8b6686fdd526}/external.pdf";
webView.loadUrl(
"http://docs.google.com/gview?embedded=true&url=" + pdfURL);
setContentView(webView);
}
private class Callback extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(
WebView view, String url) {
return(false);
}
}
或尝试
我认为确切的问题在于我们用 "http://docs.google.com/gview?url="
连接的 URL 编码。这意味着我们必须用 unicode
替换 url 的所有特殊字符(:、/、& 等)。 Uri.encode("")
为我们表演一下。
像这样
String url = Uri.encode("your link");
String finalUrl = "http://docs.google.com/viewer?url=" + url + "&embedded=true";
我认为这是您的 pdf 文件 URL 问题,请检查您的 URLPATH
是否 return pdf URL 像这样 https://www.tutorialspoint.com/css/css_tutorial.pdf
我用这个URL它呈现正常
String URLPATH = "https://www.tutorialspoint.com/css/css_tutorial.pdf";
String url = "https://docs.google.com/gview?embedded=true&url=" + URLPATH;
//url:https://docs.google.com/gview?embedded=true&url=https://www.tutorialspoint.com/css/css_tutorial.pdf
webview.loadUrl(url);
我认为您的 URLPATH 是一个动态 url,根据参数,它 return 是一个文件 url。但现在可能 return 不是正确的 url。它可以检查它,或者您将 URLPATH 更改为具有 http://host:port/path/.pdf
的 url 。用它来测试你的代码。
问题显然是这样的:
您有两个 URL - PDF 的 URL 和 google 文档的 URL。由于您想将一个 URL 作为 GET 参数 (?embedded=true&url=
) 传递给另一个 URL 和您尝试的 URL要传递 也包含 GET 参数:?fromDate=
和 &toDate=
,秒 URL 必须是 URL编码.
所以请打电话
String url = "https://docs.google.com/gview?embedded=true&url=" + URLEncoder.encode(URLPATH, "ISO-8859-1");
然后重试。
注意:使用URLEncoder.encode时:你总是会遇到这个问题:你可以调用@Deprecated
方法URLEncoder.encode(String s)
特定编码或带有 URLEncoder.encode(String s, String enc)
的首选方法,您可以在其中指定编码,但此方法的签名中有 throws UnsupportedEncodingException
:-O
无论如何,URLEncoder.encode(url)
和 URLEncoder.encode(url, "UTF-8")
或 URLEncoder.encode(url, "ISO-8859-1")
都会产生相同的结果,因为 [=46] 中没有 UTF-8 或 ISO-8859-1 特定字符=]:
我尝试在 webview 中将我的内容加载为 PDF android 但它显示无可用预览我该如何解决 我的代码在这里:-
webview = (WebView) findViewById(R.id.webview);
webview.getSettings().setLoadWithOverviewMode(true);
webview.getSettings().setUseWideViewPort(true);
webview.getSettings().setJavaScriptEnabled(true);
webview.getSettings().setPluginState(WebSettings.PluginState.ON);
webview.setWebChromeClient(new WebChromeClient());
String URLPATH = "http://myaccount365.in/public/oddeve78/report/ledger/11/summaryLedger?fromDate=01/11/2019&toDate=09/12/2019";
String url = "https://docs.google.com/gview?embedded=true&url=" + URLPATH;
webview.loadUrl(url);
String URLPATH = "http://www.pdf995.com/samples/pdf.pdf";
String url = "https://docs.google.com/gview?embedded=true&url=" + URLPATH;
webview.loadUrl(url);
我正在使用它并为我工作:Check Here
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
WebView webView=new WebView(MainActivity.this);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setPluginState(WebSettings.PluginState.ON);
//---you need this to prevent the webview from
// launching another browser when a url
// redirection occurs---
webView.setWebViewClient(new Callback());
String pdfURL = "http://www.expertagent.co.uk/asp/in4glestates/{16D968D6-198E-4E33-88F4-8A85731CE605}/{05c36123-4df0-4d7d-811c-8b6686fdd526}/external.pdf";
webView.loadUrl(
"http://docs.google.com/gview?embedded=true&url=" + pdfURL);
setContentView(webView);
}
private class Callback extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(
WebView view, String url) {
return(false);
}
}
或尝试
我认为确切的问题在于我们用 "http://docs.google.com/gview?url="
连接的 URL 编码。这意味着我们必须用 unicode
替换 url 的所有特殊字符(:、/、& 等)。 Uri.encode("")
为我们表演一下。
像这样
String url = Uri.encode("your link");
String finalUrl = "http://docs.google.com/viewer?url=" + url + "&embedded=true";
我认为这是您的 pdf 文件 URL 问题,请检查您的 URLPATH
是否 return pdf URL 像这样 https://www.tutorialspoint.com/css/css_tutorial.pdf
我用这个URL它呈现正常
String URLPATH = "https://www.tutorialspoint.com/css/css_tutorial.pdf";
String url = "https://docs.google.com/gview?embedded=true&url=" + URLPATH;
//url:https://docs.google.com/gview?embedded=true&url=https://www.tutorialspoint.com/css/css_tutorial.pdf
webview.loadUrl(url);
我认为您的 URLPATH 是一个动态 url,根据参数,它 return 是一个文件 url。但现在可能 return 不是正确的 url。它可以检查它,或者您将 URLPATH 更改为具有 http://host:port/path/.pdf
的 url 。用它来测试你的代码。
问题显然是这样的:
您有两个 URL - PDF 的 URL 和 google 文档的 URL。由于您想将一个 URL 作为 GET 参数 (?embedded=true&url=
) 传递给另一个 URL 和您尝试的 URL要传递 也包含 GET 参数:?fromDate=
和 &toDate=
,秒 URL 必须是 URL编码.
所以请打电话
String url = "https://docs.google.com/gview?embedded=true&url=" + URLEncoder.encode(URLPATH, "ISO-8859-1");
然后重试。
注意:使用URLEncoder.encode时:你总是会遇到这个问题:你可以调用@Deprecated
方法URLEncoder.encode(String s)
特定编码或带有 URLEncoder.encode(String s, String enc)
的首选方法,您可以在其中指定编码,但此方法的签名中有 throws UnsupportedEncodingException
:-O
无论如何,URLEncoder.encode(url)
和 URLEncoder.encode(url, "UTF-8")
或 URLEncoder.encode(url, "ISO-8859-1")
都会产生相同的结果,因为 [=46] 中没有 UTF-8 或 ISO-8859-1 特定字符=]: