是否可以在 Flutter Web 应用程序的运行时对 Add/Remove 小部件进行 Chrome 扩展?

Is it possible for a Chrome Extension to Add/Remove Widgets at Runtime in a Flutter Web App?

这与使用 Chrome 扩展创建 Flutter UI 不同。这确实是可能的,并且能够在搜索引擎结果的第一页上得到证实。

我想知道 Chrome 扩展是否可以针对以下用例修改使用 Flutter 构建的网站:

这个 Flutter Web 应用程序有一个新闻源,我想写一个 Chrome 扩展来删除 elements/widgets,其中包含我不想看到的 text/keywords。

基本上 Chrome 扩展到 Add/Remove Widgets 在 Flutter Web 应用程序中在运行时通过文本区分是可能的吗?

简答:没有。长答案:需要大量时间和工作,这是可能的,但可能不值得做,不应被视为可行的用例。

对于典型的 html/css/js 应用程序,使用 js 的网络扩展可以轻松简单地修改网页的 html 和 css,立即删除元素。

对于 Flutter Web 应用程序,所有的 dart 代码都被编译为 js,用于绘制页面上的单个 HTML 元素。因此必须修改 js 文件,而不是 html 或 css.

事实上,dart 代码被编译为 js,这意味着它在技术上仍然可以在客户端使用 Chrome 扩展名进行修改。 Chrome 扩展也许可以使用 chrome.scripting 复制和注入修改后的 js 文件或 chrome.declarativeWebRequest 将下载的 js 文件替换为修改后的文件。

查找要修改的 js 可能很困难,但如果源映射可用,可能会更容易。

使用 Chrome 扩展修改 Flutter 应用程序介于两者之间:

  • 修改视频游戏以包含额外的菜单或一些有用的 UI 或修改游戏中的资产或角色行为(尽管没有内存注入而不是修改 unity web 应用程序或一般的 unity 或 unreal)
  • 使用网络扩展修改典型的网络应用程序。

总体而言,使用 Chrome 扩展(或与 Web 应用程序开发人员合作以外的任何其他方式)修改 Flutter Web 应用程序将非常困难,可能不值得付出努力。