是否可以允许本机应用程序 webview 主机使用 `unsafe-eval`,同时拒绝其他内容?

Is it possible to allow `unsafe-eval` for native app webview hosts, while denying it to other content?

我希望在本机 iOS/Android webview 控制器和 webview 当前加载内容的 javascript 上下文之间实现双向通信。到目前为止,这是我得到的:

或者另一种不涉及放松 CSP 的通信方式?这在理论上可以通过网页监听 websocket 并将消息发送到服务器,然后将消息转发到 websocket,但这似乎很笨拙。

感谢任何建议!

'unsafe-eval' 充当 global page flag,因此您不能在粒度模式下使用它。

只有使用 WebSockets.

才能实现完整的双向通信

也可以从应用程序端发起通信,您可以使用XMLHttpRequest
并且要从服务器端发起通信,您可以使用 Server-Sent Events (SSE). You can have a look on Mercure: a real-time communication protocol (publish-subscribe) built on top of SSE.