在 Chrome App Webview 中检测和更改 src 的 URL
Detecting and changing URL of src in Chrome App Webview
使用 Chrome://inspect 并转到 Chrome 应用程序,然后使用 chrome 开发工具获取代码片段,您可以使用以下代码检查 src 属性一个 webview 并重定向(如果它已被更改)。例如,当应用程序在自动重定向的 public wifi 上 运行 和设定的时间段时,可能会发生这种情况。我希望能够检查重定向的 URL 并将其改回。
setInterval(function(){
var x = document.getElementsByTagName("webview")[0].getAttribute("src"); //get current domain
//pseudo code - check if x matches a domain...
document.getElementsByTagName("webview")[0].setAttribute("src","Your URL here"); //set webview to domain
},5000);
放置此 Javascript 代码的最佳位置在哪里?有没有人有例子。
到目前为止我尝试过的:
内联?如果是这样,那么最好的方法是什么作为关于更新清单文件允许 "unsafe-inline" 的错误消息。但是,我读到有关于此的安全问题。
应用程序中的一个 js 文件 - 我试过了,但我无法在 chrome 开发工具中找到该文件进行调试,但它没有用。 Console.log 也不行。您如何从 Chrome 应用程序中调试 JS 文件?
来自服务器的带有 nonce 的 js 文件?我尝试按照 http://www.w3.org/TR/2015/CR-CSP2-20150721/#script-src-nonce-usage 上的说明进行操作,但无法正常工作。有人有例子吗?
此外,是否有任何合适的事件侦听器可以替代使用?我认为可以使用 webview loadRedirect 事件。如果是这样,我应该把这段代码放在哪里?
https://developer.chrome.com/apps/tags/webview#event-loadredirect
与 <webview>
元素交互的代码应该 运行 在与该元素相同的文档中。因此,假设该页面是 app.html
,您需要在其中包含一个脚本。
内联代码 will not work in a Chrome App,句点。您应该添加一个单独的本地 .js
文件并使用 <script>
元素引用它。
至于检查/调试应用程序,您需要附加到应用程序 window,而不是 background/event 页面。有 2 个有用的工具:
页面 chrome://inspect/#apps
将列出所有应用程序 windows,您可以从那里附加开发工具。
您可以设置一个 Chrome 标志以在 Chrome 应用程序 windows、chrome://flags/#debug-packed-apps
上使用 Inspect 启用上下文菜单,如果您希望这样做经常。
使用 Chrome://inspect 并转到 Chrome 应用程序,然后使用 chrome 开发工具获取代码片段,您可以使用以下代码检查 src 属性一个 webview 并重定向(如果它已被更改)。例如,当应用程序在自动重定向的 public wifi 上 运行 和设定的时间段时,可能会发生这种情况。我希望能够检查重定向的 URL 并将其改回。
setInterval(function(){
var x = document.getElementsByTagName("webview")[0].getAttribute("src"); //get current domain
//pseudo code - check if x matches a domain...
document.getElementsByTagName("webview")[0].setAttribute("src","Your URL here"); //set webview to domain
},5000);
放置此 Javascript 代码的最佳位置在哪里?有没有人有例子。
到目前为止我尝试过的:
内联?如果是这样,那么最好的方法是什么作为关于更新清单文件允许 "unsafe-inline" 的错误消息。但是,我读到有关于此的安全问题。
应用程序中的一个 js 文件 - 我试过了,但我无法在 chrome 开发工具中找到该文件进行调试,但它没有用。 Console.log 也不行。您如何从 Chrome 应用程序中调试 JS 文件?
来自服务器的带有 nonce 的 js 文件?我尝试按照 http://www.w3.org/TR/2015/CR-CSP2-20150721/#script-src-nonce-usage 上的说明进行操作,但无法正常工作。有人有例子吗?
此外,是否有任何合适的事件侦听器可以替代使用?我认为可以使用 webview loadRedirect 事件。如果是这样,我应该把这段代码放在哪里?
https://developer.chrome.com/apps/tags/webview#event-loadredirect
与 <webview>
元素交互的代码应该 运行 在与该元素相同的文档中。因此,假设该页面是 app.html
,您需要在其中包含一个脚本。
内联代码 will not work in a Chrome App,句点。您应该添加一个单独的本地 .js
文件并使用 <script>
元素引用它。
至于检查/调试应用程序,您需要附加到应用程序 window,而不是 background/event 页面。有 2 个有用的工具:
页面
chrome://inspect/#apps
将列出所有应用程序 windows,您可以从那里附加开发工具。您可以设置一个 Chrome 标志以在 Chrome 应用程序 windows、
chrome://flags/#debug-packed-apps
上使用 Inspect 启用上下文菜单,如果您希望这样做经常。