我正在尝试为我的Android应用程序实现pdf查看器,该查看器显示SD卡中存在的不同pdf文件.
我正在考虑使用pdf.js库.我使用的代码示例如下:https://bitbucket.org/butelo/pdfviewer/
但是,该库将javascript文件中的pdf网址作为其所属文件夹(/ assets / pdfviewer)的相对地址.
<script type="text/javascript">
var url = '../compressed.tracemonkey-pldi-09.pdf';
</script>
pdf的文件名也不固定,我需要根据要求在程序中更改它们.
更新————————————————- ————————————————– ———————–
我这样更新了Java代码:
Uri path = Uri.parse(Environment.getExternalStorageDirectory().toString() + "/data/test.pdf");
webView.loadUrl("file:///android_asset/pdfviewer/index.html?file=" + path);
从:
<script type="text/javascript">
var url = '../compressed.tracemonkey-pldi-09.pdf';
</script>
至:
var url = getURLParameter('file');
function getURLParameter(name) {
return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search)||[,""])[1].replace(/\+/g, '%20'))||null}
上面的javascript代码从“ index.html”的网址中提取“ file”参数
仍然无法正常工作. logcat中的网络视图“铬”显示:
I/chromium(1353): [INFO:CONSOLE(106)] "Warning: Unhandled rejection:
Unexpected server response (0) while retrieving PDF "file:///storage/sdcard0/data/test.pdf".", source: file:///android_asset/pdfviewer/pdf.js (106)"
这似乎是跨服务器问题.那么,如何在不使用服务器的情况下修改pdf.js代码以读取本地文件?
解决方法:
解决了这个问题.该应用缺少READ_EXTERNAL_STORAGE权限.
可以在以下位置找到代码:https://github.com/pauldmps/Android-pdf.js
它具有Apache V2许可证,因此可以在您的应用中随意使用.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。