我使用Epub.js库在Phonegap项目中呈现一个.epub文件。
该文件被正确提取和解压缩,但如果在WebView中运行(在桌面和安卓浏览器(Chrome )中运行得很好),屏幕将显示为空白。
调试时,我发现应该加载iframe的iframe.onload无法工作,因为iframe.onload从未被调用过。他想要访问的网址是blob:file%3A///85a6ce73-2b5f-430e-a908-26a7d3d830e4,所以我猜这可能是.Cordova不接受blob URI方案。
不过,我不知道有什么办法.我完全被困在那里了。
发布于 2015-08-11 15:17:39
我找到解决办法了。所有“科多瓦不接受URI”的答案总是“白名单”
使用我在配置文件中拥有的白名单插件:
<access origin="*" />但是,调试时,我看到blob:/file://...uri在shouldAllowNavigation中被阻塞了。然后我试着:
<access origin="*" />
<allow-navigation origin="*" />但!但还是没成功。调试得更多一点,我看到WhitelistPlugin --如果您添加了一个*--它不允许所有东西,而是只允许http://、https://和data:。最后,补充如下:
<access origin="*" />
<allow-navigation href="*" />
<allow-navigation href="blob:*" />帮我解决了这个问题。
此外,为了防止对某人有帮助,在我进行测试时,我尝试从服务器下载.epub文件并在文件系统中提取它(/data/data/package/.)然后从那里访问它。由于某些原因,使用XHR请求访问本地文件会返回status: 0,就像它失败了一样,但响应是存在的。如果设置了epub.js文件EPUBJS.core.request方法,则必须编辑this.response文件以接受响应(而不是期望this.status是200)。
https://stackoverflow.com/questions/31941634
复制相似问题