我使用 Google Document Viewer 在我的 Android 设备中打开 PDF 文件。显示带有“无可用预览”文本的黑屏,而不是打开我的 PDF 文件。我已经使用来自 Google 的示例 PDF 文件进行了测试。他们工作正常,但不是我的 PDF 文件。我需要从代码方面做些什么来查看我的 PDF。
http://docs.google.com/viewer?url=myurl.pdf
我使用 Google Document Viewer 在我的 Android 设备中打开 PDF 文件。显示带有“无可用预览”文本的黑屏,而不是打开我的 PDF 文件。我已经使用来自 Google 的示例 PDF 文件进行了测试。他们工作正常,但不是我的 PDF 文件。我需要从代码方面做些什么来查看我的 PDF。
http://docs.google.com/viewer?url=myurl.pdf
有一个文件显示这个问题。重命名它以删除文件名中的空白,更新我的链接并且它有效。请注意,空白已正确地被 HTML 编码为 %20,因此不需要此“修复”。但是,我不能与成功争论。祝你好运。
终于解决了这个问题。问题存在于网址中。在 url 我将 %2 替换为 %252 然后在 1 周后我解决了这个问题。
简而言之,我想对查询字符串进行编码。
if (Url != null && Url.contains("=")) {
String Urll =Url.substring(Url.lastIndexOf("&Signature=") + 1).replace("%2B", "%252B");
if (null != Urll && Urll.length() > 0 && Urll.contains("%252B")) {
int endIndex = Url.lastIndexOf("Signature");
if (endIndex != -1) {
Url = Url.substring(0, endIndex);
Url = Url + Urll;
}
}
Url = Url.replace("?AWSAccessKeyId=", "?AWSAccessKeyId%3D")
.replace("&Expires=", "%26Expires%3D").replace("&Signature=", "%26Signature%3D");
}
尝试像这样编码网址
try {
encode_url=URLEncoder.encode(url,"UTF-8"); //Url Convert to UTF-8 It important.
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
webView.loadUrl("https://docs.google.com/viewerng/viewer?embedded=true&url="+encode_url);