我有一个从 JavaScript PDF 库 (jsPDF) 生成的数据 URI,似乎没问题,因为当我使用 console.log 显示它并将其粘贴到浏览器 URL 字段时,它可以工作。但是,我无法让它在 Chrome 应用程序中显示,无论是在 Chrome 应用程序窗口还是普通浏览器窗口中。 URI 开头如下:
var uri = "data:application/pdf;base64,JVBERi0xLjMK ...";
当我这样做时:
chrome.app.window.create(uri);
窗口打开,但它正在尝试加载 URI:
chrome-extension://gapkhdeaendagkjpchhemfhbpfcjgmep/data:application/pdf;base64,JVBERi0xLjMK ...
窗口中显示消息“找不到此网页”。
当我这样做时:
window.open(uri);
or
window.open(chrome.runtime.getURL(uri));
绝对没有任何反应。不会打开浏览器窗口或选项卡,也不会向控制台写入任何消息。
有人这样做过吗?
chrome.app.window.create
只会从打包的应用程序加载资源,所以你无法逃避chrome-extension://gapkhdea.../
那里的地址空间。
window.open
当从打包的应用程序窗口调用时,将使用默认的系统处理程序打开 URL。我不知道有任何常见的系统配置为数据方案注册了默认处理程序,这可能就是为什么没有发生任何事情的原因。
如果您的目标是在打包应用程序中显示任意不受信任的内容,那么您想要的是网页视图标签 http://developer.chrome.com/apps/tags/webview.html。您可以将 Webview 元素直接嵌入到应用程序窗口的内容中。您可以使用data
其 URIsrc
属性,可以动态分配。
根据您的 Chrome 版本,当 Webview 尝试加载 PDF 查看器插件时,您可能会遇到权限问题,但我只是使用一些 PDF 数据进行了测试,并在打包的应用程序内获得了精美显示的 PDF 渲染。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)