我在我的Android设备上使用Google文档查看器来打开PDF文件。但是,我打开PDF文件时只显示黑屏和“无法预览”文本。我已经尝试使用谷歌提供的示例PDF文件,它们可以正常工作,但不是我的PDF文件。是否需要从代码方面进行一些设置才能查看我的PDF文件。
http://docs.google.com/viewer?url=myurl.pdf
我在我的Android设备上使用Google文档查看器来打开PDF文件。但是,我打开PDF文件时只显示黑屏和“无法预览”文本。我已经尝试使用谷歌提供的示例PDF文件,它们可以正常工作,但不是我的PDF文件。是否需要从代码方面进行一些设置才能查看我的PDF文件。
http://docs.google.com/viewer?url=myurl.pdf
我有一个文件显示出了这个问题。将其重命名以去除文件名中的空格,更新我的链接,它就可以工作了。请注意,空格已经正确地HTML编码为%20,因此这个“修复”不应该是必要的。但是,我不能否认成功。祝你好运。
最终解决了这个问题。问题出在URL中。在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");
}
尝试像这样编码url
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);