如何在 Chrome 应用程序中显示 PDF 的数据 URI?

2024-02-13

我有一个从 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(使用前将#替换为@)

如何在 Chrome 应用程序中显示 PDF 的数据 URI? 的相关文章

随机推荐

  • 无法将 Firebase 导入到 Swift 类中

    我对 Firebase 和构建 iOS 应用程序完全陌生 在 Xcode 7 中 我尝试将 Firebase 导入到我的 Swift 类中 在一个 swift 文件中 我输入了 import Firebase 我收到一条错误消息 没有这样的
  • MvvmCross 5.4 在 ConsoleLogProvider 中使用 NullRef 启动应用程序时崩溃

    我已更新我的 Xamarin Android 应用程序包MvvmCross from 5 3 2 to 5 4并且应用程序在启动时开始崩溃 我手动确定原因是链接器 我有link SDK libs only选项已启用 随着None选项它工作得
  • Spinner 的 RxBindings?

    我是新的 android 和 rxjava 我经历过很多使用 rxbindings 监听事件的例子 比如这个 RxView clicks b subscribe new Action1
  • Java,如何绘制不断变化的图形

    以前没有这样做过 所以显然我很糟糕 这里 当前鼠标位置周围的 64 像素在表单上绘制得稍大一些 问题是 它 有点 慢 而且我不知道从哪里开始修复 除此之外 我创建了一个线程 在完成后不断调用更新图形和一些类似文本的 fps 以真正显示绘制事
  • RabbitTemplate 接收并重新排队

    我想从队列接收消息并立即将它们出队 事实上我想模仿rabbitMQ管理控制台的行为 它可以接收消息并将其重新排队 所以我的问题是如何做到这一点 起初 我试图克隆消息并重新发送它们 但rabbitTemplate似乎无法将消息直接发送到队列
  • Heroku 登录错误:证书链中的自签名证书

    我正在尝试在 Mac 上使用 Heroku CLI 当我尝试使用 Heroku 登录名登录 Heroku 并提供我的凭据时 出现以下错误 错误 证书链中的自签名证书 我已多次尝试卸载并重新安装它 但仍然收到此错误 我该如何解决 由于我的组织
  • 传递任意大小的二维数组

    您好 我正在研究排序算法 为此我想制作一个简单的程序来从文本文件中获取整数数组 在这样做的同时 我遇到了一些关于将它们作为参数的数组和函数的麻烦和问题 这是我所做的 include
  • MySQL 中的复合主键性能缺陷

    我们有一个表 其复合主键由三个字段组成 在 MySQL 5 1 中 该表每秒有近 200 次插入和 200 次选择 表的大小约为 100 万行 并且还在不断增加 我的问题是 复合主键 是否会降低该表上的插入和选择的性能 我应该使用简单的自动
  • 正确实现不同类型但语义等效的两个对象的比较

    我发现了类似的问题 如何比较具有相似属性的两个截然不同的对象 https stackoverflow com questions 1725327 how to compare two distinctly different objects
  • 使用 shell 脚本从文件中提取唯一的行块

    从文件中提取行块时 我遇到了一些问题 考虑以下两个文件 File 1 1 20 abc this is test 1 perl RRP RRP 1 30 JEDI JEDIExportSuccess2 exec perl RRP RRP 1
  • 如何在 Jenkins 管道脚本中使用 source 命令

    我最近将 bash 执行命令重写到 Jenkins 管道中 旧的代码就像 source environment sh Build Test 现在我使用管道脚本来包装命令 如下所示 sh source environment sh Build
  • 使用捏合手势在运行时缩放 SCNNode

    我正在尝试使用捏合手势实时缩放和 SCNNode 这是我当前的代码 let pinchGestureRecognizer UIPinchGestureRecognizer target self action selector handle
  • 在一定时间内淡出/过渡顺风等级到其他等级?

    有没有办法设置bg red 300并将其淡出 过渡到bg transparent或超过 2 秒的不同 bg 类 或者我是否需要 javascript 我想要一个元素突出显示 然后在 2 秒后恢复正常 谢谢你 您可以使用配置文件创建自己的动画
  • Pip3安装模块在哪里?

    乌班图15 10 Python 3 4 3 姜戈 1 8 7 当我尝试import django在 python3 解释器中 它说ImportError No module named django 我知道 Django 1 8 7 已安装
  • 获取 #000 格式的背景颜色而不是 RGB [重复]

    这个问题在这里已经有答案了 使用此代码 我可以获得表中任何 TD 的 RGB 颜色 alert this css background color 结果是 RGB 0 255 0 jquery 是否可以获取 000 格式 或者我可以使用函数
  • Python 十六进制变量赋值

    我使用一个变量来存储由套接字发送的数据 当我在程序中分配它时 它可以工作 但是当我从文件中读取它时 它被视为字符串 Example data x31 x32 x33 print data Outputs 123 lt this is the
  • ShutDownListener 中的 TaskCanceledException

    目前我们看到很多TaskCanceledException被甩掉MS Internal ShutDownListener HandleShutDown 这个问题从 5 月中旬开始 可能与 Net 或 Windows 10 的某些更新有关 我
  • 减少 Azure 上传的文件大小

    我在 Azure 上有一个托管服务 每次我想放置包 cspkg 和 cscfg 文件 时总是需要很长时间 我的 cspkg 文件有 18 MB 有没有更好的上传方法 我的想法是将图像 样式等放入 Azure 上的存储中 并将我的 Web 应
  • WSH 脚本单元测试框架[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找 WSH 脚本的单元测试框架 vbs wsf 而不是 VB6 VBA 除了这个项目 我找不到任
  • 如何在 Chrome 应用程序中显示 PDF 的数据 URI?

    我有一个从 JavaScript PDF 库 jsPDF 生成的数据 URI 似乎没问题 因为当我使用 console log 显示它并将其粘贴到浏览器 URL 字段时 它可以工作 但是 我无法让它在 Chrome 应用程序中显示 无论是在