【发布时间】:2015-05-28 20:50:56
【问题描述】:
我想在WebView 中显示一个pdf 文件的内容。
问题:
当我启动WebView 时,一个新对话框正在打开,无论我是想在浏览器中还是在 pdf 查看器中加载 pdf。但是我想直接在WebView中加载内容。我也尝试使用前缀 url 嵌入内容,但随后显示:没有可用的预览。
我的代码:
public class Changelog_View extends ActionBarActivity {
@Override
protected void onCreate ( Bundle savedInstanceState ) {
super.onCreate(savedInstanceState);
String myPdfUrl = "https://onedrive.live.com/download?cid=DB700463EBEC6BC9&resid=DB700463EBEC6BC9%2120693&authkey=ALJ-NvyQqMdACpA&em=2";
String url = "http://docs.google.com/gview?embedded=true&url=" + myPdfUrl;
WebView webview = new WebView(this);
webview.getSettings().setJavaScriptEnabled(true);
webview.loadUrl(url);
setContentView(webview);
}
}
我现在用 android-pdfView 库用这个代码试了一下:
@Override
protected void onCreate ( Bundle savedInstanceState ) {
super.onCreate ( savedInstanceState );
com.joanzapata.pdfview.PDFView pdfView = new com.joanzapata.pdfview.PDFView ( getApplicationContext (), null );
String myPdfUrl = "https://onedrive.live.com/download?cid=DB700463EBEC6BC9&resid=DB700463EBEC6BC9%2120693&authkey=ALJ-NvyQqMdACpA&em=2";
pdfView.fromAsset(myPdfUrl)
.defaultPage(1)
.showMinimap(false)
.enableSwipe(true)
.onLoad(this)
.onPageChange ( new OnPageChangeListener () {
@Override
public void onPageChanged ( int i, int i1 ) {
}
} )
.load();
然后FileNotFoundException出现在地址:https://onedrive.live.com/download?cid=DB700463EBEC6BC9&resid=DB700463EBEC6BC9%2120693&authkey=ALJ-NvyQqMdACpA&em=2。该地址直接引用了我的 onedrive 帐户中的 pdf 文件。所以当我在浏览器中输入这个链接时,pdf文件正在下载。
那么如何在我的应用程序中使用android-pdfView 库显示来自地址:https://onedrive.live.com/download?cid=DB700463EBEC6BC9&resid=DB700463EBEC6BC9%2120693&authkey=ALJ-NvyQqMdACpA&em=2 的 pdf 文件?
谢谢。
【问题讨论】:
-
WebView无法自行显示 PDF。 -
好的,谢谢。是否有可能将任何其他带有格式化文本的文件加载到 web 视图中?还是我必须使用图书馆才能做到这一点?
-
您可以使用谷歌文档在stackoverflow.com/questions/12803701/… 获得一些帮助
-
"是否有可能将任何其他带有格式化文本的文件加载到 web 视图中?" --
WebView可以显示 HTML。许多开发人员发现 HTML 是格式化文本的合理格式。 -
请看我编辑的帖子