问题标签 [google-chrome-webview]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
6068 浏览

javascript - Google Chrome 应用程序:Webview 行为

在研究<iframe>有关 Chrome 扩展程序的问题时<webview>,Chrome 应用程序中的应用程序引起了我的注意并引起了我的兴趣。

所以我决定做一个我面临的问题的小例子,<iframe>看看是否<webview>能解决。根据我对观看 Chrome Dev 视频的理解,webview运行在与您的应用程序不同的进程中;它没有与您的应用相同的权限。所以我假设如果运行中的内容以某种方式与“主线程”(应用程序)分开,我猜它们的内容将彼此分开执行,而不是阻塞应用程序或其他,以防它们中的任何一个可能有可能长时间运行的 js 执行。因此我做了以下事情:

背景.js

清单.json

窗口.html

其中三个网页视图是普通网页,第四个只是一个长时间运行的 js 文件的示例,您可以检查代码,或者我可以稍后提供。如果我打开 4 个 google chrome 浏览器窗口,输入地址,按回车键,我会观察到:3 个页面立即加载,而另一个长时间 js 执行的页面仍然可以工作。

如果我在网页中执行此操作,用于打开这 4 个网页,因为它们都在同一个进程中,如果 1 个页面由于 js 执行而变慢/阻塞,则所有其他页面都将被阻止。

现在使用 Chrome 应用程序,我注意到这种行为有一些有趣和奇怪的地方。我注意到以下内容:

  1. 如果我只加载前 3 个网页,加载速度很快并且“同时”出现;
  2. 如果我按原样加载所有网页,我会看到前 3 个页面正在加载,最后一个页面因为它有很长的 js 执行需要他的时间然后它显示(这将是最佳行为),因为它们是不同的过程,它们应该'不依赖于 webview 是否慢,其他人必须等待;
  3. 现在,如果我评论第三个,刷新并执行应用程序,我看不到 webview,直到完成 longscript 的那个。(为什么会这样?)
  4. 上面的一点是随机的,要么发生如我所提到的,要么没有发生。
  5. 最后,让我们添加另一个<webview id="wv5" style="width: 450px; height: 300px; border: 2px solid red" src="http://developer.chrome.com"></webview>,对我来说会发生什么:前三个被加载,第四个正在执行,完成并显示后,我看到第五个渲染。

我的主要问题/怀疑是围绕行为,因为它们实际上是在一个单独的进程中运行,为什么它没有与浏览器窗口相同的行为,例如,为什么那个 webview 会阻止其他人工作/渲染,是不是有意的照原样工作?我是否应该做一些变通方法来检测一段时间后的 webview 是否没有完成以跳过负载并让其他人加载,这样我就可以回到慢速浏览器了?

先感谢您。

0 投票
1 回答
1146 浏览

javascript - 如何允许在 Google Chrome App 中的 webview 内下载?

我有一个运行在本地 Web 服务器上的 Web 应用程序,我试图通过 Web 视图与之交互。我有一个链接,它将返回一个 PDF,其中内容处置是附件(要求文件由系统默认的 pdf 阅读器下载和打开)。

我已经查看了有关处理 Chrome 应用程序中的权限请求的内容。在这一点上,我什至无法确认应用程序甚至收到了权限请求。难道我做错了什么?大概。它是什么?

这是我的网络应用程序的链接。

这是我的清单。

这是我的JS。

当我单击我的链接时,我没有在控制台上收到我的消息。

0 投票
1 回答
2574 浏览

google-chrome - 在 Google Chrome 应用程序网页视图中启用 Chrome 扩展程序

我正在使用 gmail、日历等构建 Google Apps Chrome 应用程序(不是扩展程序,而是应用程序)。

我想在我的应用程序中从常规 chrome 运行扩展程序。例如,rapportive 是 gmail 的绝佳扩展。但似乎扩展不在托管在webview.

有谁知道如何在 chrome 应用程序中启用扩展程序?

0 投票
1 回答
917 浏览

javascript - Chrome 应用程序/webview 中的 FB.login

我正在尝试将我们当前的网络应用程序打包到桌面 Chrome 应用程序中,并在 window.html 中使用单行 webview

该网络应用程序使用 FB.login() [1] 并且在浏览器中运行良好,但是,在 Chrome 应用程序中使用它时出现以下消息

我看不出我做错了什么。FB.login() 动作由用户点击触发。

是否需要任何权限?

谢谢

[1] https://developers.facebook.com/docs/reference/javascript/FB.login/

注意:在 Chromium Apps Google 群组上交叉发布

0 投票
1 回答
589 浏览

webview - 如何在 Dart google chrome 应用程序中将消息发布到 webview (securityError)

我正在使用 Dart 编程语言构建一个带有 webview 的 Google Chrome 应用程序。该应用程序通过 postMessage 与 webview 内容进行通信。如果我从 DartEditor 运行应用程序(作为 Chrome 应用程序运行)postMessage 工作正常。但是在构建(dart2js)并使用“加载未打包的扩展...”加载到浏览器之后 - 应用程序无法获取 webview contentWindow 并在其上执行 postMessage。

来自 chrome 开发控制台的错误:未捕获的 SecurityError:阻止了来源为“chrome-extension://bpddihniogcgmnlaghkacfagkecgnljo”的框架访问来源为“swappedout://”的框架。请求访问的帧具有“chrome-extension”协议,被访问的帧具有“交换”协议。协议必须匹配。

Google Chrome 版本 36.0.1951.5 dev Dart 版本 SDK 1.4.2,版本 1.5.0-dev.4.2 - 给出相同的错误。

这是演示问题的最小工作示例 - https://github.com/Dumbris/dart_chrome_app_webview_security_error

0 投票
1 回答
991 浏览

javascript - 通过 Google Chrome 应用程序 Webview 冒泡通知

我有一个 Google Chrome 打包应用程序并使用 webview 标签来加载远程页面(我无法控制)。该远程页面正在尝试请求通知权限,并且该权限请求似乎没有冒泡到包装 Chrome 应用程序。

我正在使用以下(过于宽松)代码来允许来自 webview 的所有权限请求(并回显所有控制台输出):

我在网上找不到确认信息,但我认为 webviews 中还不允许通知权限。如果我们假设是这种情况,是否有任何其他方法可以强制对不会被 CORS 阻止的 webviewed 站点的通知权限?

0 投票
1 回答
2729 浏览

javascript - Webview 不断失去焦点

我有一个应用程序,它基本上只是内部公司网站的包装器。这个想法是在我的 Chromebook 上自己的窗口中轻松加载网站,这样当 RAM 变低时它就不会卸载。

我有一个非常简单的应用程序,它有一个使用整个应用程序窗口的 WebView。问题是,每当我从窗口切换回来时,webview 就会失去焦点。这特别烦人,因为它是一个聊天应用程序,我想在 alt-tab 键回到窗口后立即开始交谈。

每次窗口获得焦点时,我都会关注 webview,但是 Window(来自 chrome.windows)和 AppWindow(来自 chrome.app.window)之间的断开连接使得这不简单。我需要的事件只存在于 Window 对象中,但我只能明确获得当前的 AppWindow。理论上,当应用程序首次启动时,我可以得到当前活动的窗口,但这似乎很老套且不可靠。

索引.html

背景.js

样式.css

让 webview 占用整个窗口有点棘手;我不得不使用一些多余的 CSS 属性来让它正常工作。

0 投票
1 回答
707 浏览

google-chrome - 从 Google Chrome 应用程序网页视图在新选项卡中打开链接

我有一个带有 webview 控件的 Google Chrome 应用程序。Web 视图中的某些链接旨在在新选项卡 ( target="_blank") 中打开。但是,单击这些链接不会执行任何操作,并且右键单击它们不会打开上下文菜单来打开/复制链接。如何启用此类链接?

0 投票
1 回答
351 浏览

android - Google plus 和 twitter 应用程序在哪里打开 Android 上的链接

当您单击 Android 上的 Twitter 应用程序或 Google+ 应用程序中的链接时,它会在 chrome webview 中打开。附上一张图片。我不知道它叫什么,在哪里可以找到有关它的信息和基本示例。

在此处输入图像描述

0 投票
0 回答
57 浏览

google-chrome-app - 在 chrome 应用程序的 webview 中杀死 javascript 引擎

是否可以使用 chrome aps api(而不是 java api)在从桌面上的 chrome 应用程序运行的 web 视图中终止 javascript 引擎。

我看到 webview 上有一个终止方法,但它似乎也杀死了渲染功能,我只会停止/冻结在那里运行的 javascript。