我正在尝试开发可以从服务器查看pdf文件的Android应用程序。 我编辑了我的代码。看看吧。
这里是代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//String LinkToPDF = "http://127.0.0.1/joomla/images/appletter.pdf";
WebView mWebView=new WebView(MainActivity.this);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setPluginsEnabled(true);
mWebView.loadUrl("https://docs.google.com/gview?embedded=true&url=nizam.hostingsiteforfree.com/doc_8.pdf");
setContentView(mWebView);
mWebView.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return false;
}
});
}
没有错误。但只要我点击“阅读pdf”按钮
,它就会显示出来“抱歉,我们无法在原始来源找到该文档。请确认该文档仍然存在。”
请帮我摆脱这个问题。有什么帮助吗?
答案 0 :(得分:1)
从模拟器中引用localhost时,请使用http://10.0.2.2/
而不是本地IP
因此,代码中的更改将是
String LinkToPDF = "http://10.0.2.2/joomla/images/appletter.pdf";
此外,这仅适用于模拟器。对于真实设备,您需要真正的服务器。
<强>更新强>
我测试了你的代码。它只适用于真正的服务器。好像'google docs'无法访问localhost文件。所以,使用真实服务器进行测试。有许多免费托管网站,您可以用它们进行测试。
Joomla不是服务器。 Joomla是content management system (CMS)。你在你的'localhost'中安装了Joomla,它只是模仿服务器,而不是真正的服务器。(免费托管网站之一 - freeHosting)。在真实服务器上注册(现在可以使用免费托管),获取自己的网址,并将pdf上传到那里。如果您需要有关托管的更多详细信息,请随时给我发邮件。
现在,一个重要的部分: - SSL证书。免费托管可能没有有效的SSL。所以,请参考以下内容:
String LinkToPDF = "http://nizam.hostingsiteforfree.com/doc_8.pdf";
WebView webview=new WebView(MainActivity.this);
webview.getSettings().setJavaScriptEnabled(true);
final Activity activity = this;
webview.setWebViewClient(new WebViewClient() {
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
Toast.makeText(activity, "Oh no! " + description, Toast.LENGTH_SHORT).show();
}
@Override
public void onReceivedSslError(WebView view,
SslErrorHandler handler, SslError error) {
Log.d("Nzm", ""+error.getPrimaryError());
Toast.makeText(activity, "Skipping SSL error", Toast.LENGTH_SHORT).show();
handler.proceed();
}
});
setContentView(webview);
webview.loadUrl("https://docs.google.com/gview?embedded=true&url=nizam.hostingsiteforfree.com/doc_8.pdf");