我的Chrome打包应用包含一个PDF,我想让用户查看它。如果我在当前框架中打开它,我会收到错误“Chrome PDF Viewer不被允许”。
坦率地说,Chrome PDF查看器非常糟糕,所以我宁愿让用户在他们选择的PDF查看器中查看它。如果我禁用chrome PDF插件(就像一个实验)并尝试使用chrome.app.window.open打开PDF,它会“下载”PDF,然后用户可以打开它。但这有两个问题:
有什么建议吗?打开嵌入在我的应用程序中的PDF是此应用程序的必备功能。
答案 0 :(得分:1)
我对此进行了广泛的研究,并得出结论认为没有办法让Chrome应用程序打开本地的PDF。我也尝试过数据URI。
我不认为问题是窗口中的PDF支持,因为它仍然是Chrome或PDF的大小。相反,我认为这只是一个工程问题,有一天可能会得到解决。
至于我,我在Chrome应用中构建了PDF。由于我无法显示它,并且没有服务器将其上传到,我将其写入用户选择的文件中,让用户自己处理它。
答案 1 :(得分:0)
我有这个工作,但它是否适合你的解决方案在很大程度上取决于你的用例。解决方案有三个部分:
要在打包的应用中运行,您需要对国际化支持做一些暴力。甚至在你这样做之后,你会发现有些PDF文件没有任何明显的原因而拒绝加载。因此,不要试图让pdfjs在打包的应用程序中运行。只是:
<webview>
,并使用HTML5缓存清单让所有文件可供脱机查看。是的,是的,我知道缓存清单不再酷了。但是,如果您可以列出所有文件以便在打包的应用程序中使用,那么您正在做一个缓存清单实际效果很好的案例。
您还可以获得以下好处,即您无需重写应用程序以实现严格的打包应用规则(eval,同步xhr,2GB限制等)。
您可以在m.ka.com/c/ka上看到一个有效的示例(访问Chrome以获取桌面应用;如果您使用Firefox访问该应用,您将可以访问使用该应用的托管应用技巧)。 PDF文章位于“为什么选择Kaon”部分的底部。