检测和更改Chrome应用程序Webview中src的URL

Detecting and changing URL of src in Chrome App Webview

本文关键字:src URL Webview 应用程序 Chrome 检测      更新时间:2023-09-26

使用Chrome://inspect然后转到Chrome应用程序,然后使用Chrome-dev工具源代码片段,您可以使用以下代码从网络视图中检查src属性,并在更改后重定向。例如,当应用程序在公共wifi上运行时,可能会发生这种情况,该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代码的最佳位置在哪里?有人有这样的例子吗。

到目前为止我尝试过的:

  • 内联?如果是这样,那么最好的方法是什么,作为关于更新允许"不安全内联"的清单文件的错误消息。然而,我读到有人对此表示安全担忧。

  • 应用程序中的js文件-我尝试过,但在chrome dev工具中找不到要调试的文件,它也不起作用。Console.log也不起作用。如何在Chrome应用程序中调试JS文件?

  • 源于服务器的带有nonce的js文件?我试着按照http://www.w3.org/TR/2015/CR-CSP2-20150721/#script-src nonce用法,但无法使其正常工作。有人举个例子吗?

此外,是否有任何合适的事件侦听器可以替代?我认为可以使用webview loadRedirect事件。如果是,我该把这个代码放在哪里?

https://developer.chrome.com/apps/tags/webview#event-loadredirect

<webview>元素交互的代码应该与该元素在同一文档中运行。因此,假设该页面是app.html,则需要在其中包含一个脚本。

内联代码在Chrome应用程序中不起作用,句号。您应该添加一个单独的本地.js文件,并使用<script>元素引用它。

至于检查/调试应用程序,您需要附加到应用程序窗口,而不是后台/事件页面。有两个有用的工具:

  1. 页面chrome://inspect/#apps将列出所有应用程序窗口,您可以从那里附加开发工具。

  2. 如果你想经常这样做,你可以在Chrome应用程序窗口chrome://flags/#debug-packed-apps上设置一个Chrome标志来启用上下文菜单。