gpt4 book ai didi

javascript - Electron 操纵/拦截 WebView 请求和响应

转载 作者:数据小太阳 更新时间:2023-10-29 04:16:35 27 4
gpt4 key购买 nike

我想创建一个将使用 webview 的 Electron 应用程序显示第 3 方内容。

我希望能够拦截来自该 webview 的所有请求和响应。有时我想操纵这些内容,有时我想记录它,有时我什么都不做。

作为响应的一个示例,也许 Web 服务器将使用 TypeScript 代码进行响应,也许我想获取该响应并将其编译为标准 JavaScript。

我调查了this page但看起来只能取消请求并操纵 header 。 WebRequest API看起来不符合我的用例的需要,因为它只允许对请求和响应进行非常小的操作。

我也考虑过设置一些可以充当代理的网络服务器,但我对此有顾虑。我想维护用户隐私,并且我想确保托管第三方内容的 Web 服务器看起来请求来自类似浏览器的环境(例如 Electron webview)而不是服务器。我知道我可以使用我发送的 header 等来处理请求,但是整个解决方案变得更加复杂,然后我想,但可能是唯一的选择。

有没有更好的方法来实现这一点,并更好地控制 Electron webview?

最佳答案

我认为你应该查看 Protocol API .它在内部充当代理。

假设您希望用户在打开 http://www.google.com 时看到类似you've been conned! 的内容:

const { protocol } = require("electron");

const content = new Buffer("you've been conned!");

protocol.interceptBufferProtocol("http", (request, result) => {
if (request.url === "http://www.google.com")
return result(content);
... // fetch other http protocol content and return to the electron
});

WebRequest API 相比,还有很多工作要做,但它比独立的本地代理简单得多。

关于javascript - Electron 操纵/拦截 WebView 请求和响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50974767/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com