我有一个Android应用,我想在其中以pdf,excel,docx,txt格式显示来自其各自Urls的文件。我可以使用外部应用程序显示这些文件,但为此,首先下载文件并将其存储在设备上,然后显示。我不想下载,我尝试使用Google文档查看器在WebView中显示文件,但是由于文档是私有的,因此无法显示。我已经尝试过以下内容:-
mDocumentUrl = mIntent.getStringExtra(Constant.DOCUMENT_URL);
wvDocumentReader.getSettings().setJavaScriptEnabled(true);
wvDocumentReader.setWebViewClient(new WebViewClient(){
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon)
{
super.onPageStarted(view, url, favicon);
wvProgressBar.setVisibility(View.VISIBLE);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request)
{
view.loadUrl(request.getUrl().toString());
return true;
}
@Override
public void onPageFinished(WebView view, String url)
{
super.onPageFinished(view, url);
wvProgressBar.setVisibility(View.GONE);
}
});
wvDocumentReader.loadUrl("http://docs.google.com/gview?embedded=true&url="+ mDocumentUrl);
有人可以建议图书馆或解决方法来实现这一目标吗?任何帮助表示赞赏。
答案 0 :(得分:0)
我认为您应该使用自定义库来完成该工作。
请参阅:https://github.com/googlesamples/android-PdfRendererBasic
还有另一种无需调用其他应用程序即可显示PDF的方法
这是一种在Android应用中显示PDF的方式,该应用使用http://docs.google.com/viewer
的支持将PDF文档嵌入到android webview中伪
String doc="<iframe src='http://docs.google.com/viewer?url=+location to your PDF File+'
width='100%' height='100%'
style='border: none;'></iframe>";
示例如下所示
String doc="<iframe src='http://docs.google.com/viewer?url=http://www.iasted.org/conferences/formatting/presentations-tips.ppt&embedded=true'
width='100%' height='100%'
style='border: none;'></iframe>";
代码
WebView wv = (WebView)findViewById(R.id.webView);
wv.getSettings().setJavaScriptEnabled(true);
wv.getSettings().setPluginsEnabled(true);
wv.getSettings().setAllowFileAccess(true);
wv.loadUrl(doc);
//wv.loadData( doc, "text/html", "UTF-8");
并在清单中提供
<uses-permission android:name="android.permission.INTERNET"/>
OR