我正在使用Epub.js库在Phonegap项目中呈现.epub文件.
正确提取并解压缩了文件,但是如果在WebView中运行(在Desktop和android浏览器(Chrome应用)中完美运行),则屏幕显示为空白.
调试时,我发现应该在其中加载epub的iframe不起作用,因为从未调用过iframe.onload.他尝试访问的URL是
blob:file:/// 85a6ce73-2b5f-430e-a908-26a7d3d830e4,所以我猜测这可能是原因… Cordova不接受blob URI方案.
但是,我不知道有任何解决方法…我完全呆在那里.
解决方法:
我找到了解决方案.所有“ Cordova不接受URI”的答案始终是“白名单”
<access origin="*" />
但是,调试时我发现在blobAllowNavigation中blob:/ file://…uri被阻塞了.然后我尝试了:
<access origin="*" />
<allow-navigation origin="*" />
但!它仍然没有用.进行了更多调试,我发现如果添加*,WhitelistPlugin并不能容纳所有内容,而只能包含http://,https://和data:.最后,添加:
<access origin="*" />
<allow-navigation href="*" />
<allow-navigation href="blob:*" />
为我解决了此问题.
另外,以防万一它对某人有帮助,在我进行测试时,我尝试从服务器下载.epub文件并将其提取到文件系统(/ data / data / package / …)中,然后从那里访问它.出于某种原因,使用XHR请求访问本地文件会返回状态:0,就像失败一样,但是响应在那里.如果设置了this.response,我必须编辑epub.js文件EPUBJS.core.requestmethod以接受响应(而不是期望this.status为200).
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。