---
id: "E:cAlgo.API.WebView.WebMessageReceived"
kind: "event"
type: "T:cAlgo.API.WebView"
url: "https://help.ctrader.com/ctrader-algo/references/Controls/WebView/WebMessageReceived/"
---

> Documentation index for agents: https://help.ctrader.com/ctrader-algo/llms.txt · machine index: https://help.ctrader.com/ctrader-algo/api.json

# WebView.WebMessageReceived

Member of [WebView](https://help.ctrader.com/ctrader-algo/references/Controls/WebView/index.md).

## WebMessageReceived

Occurs after web content sends a message

Environments: Desktop supported · CLI not supported · Cloud not supported.

- CLI: Accepted without error but never displayed, so control events such as Click are never raised.
- Cloud: Accepted without error but never displayed, so control events such as Click are never raised.

C#:

```csharp
public event Action<WebViewWebMessageReceivedEventArgs> WebMessageReceived;
```

Python:

```python
webView.WebMessageReceived += handler  # handler(obj: WebViewWebMessageReceivedEventArgs)
```

### Returns

`Action<WebViewWebMessageReceivedEventArgs>` — 

### Examples

C#:

```csharp
var webView = new WebView { Width = 300, Height = 100 };
webView.NavigateToStringAsync("<html><body><button onclick=\"window.chrome.webview.postMessage('buy')\">Buy</button></body></html>");
webView.WebMessageReceived += args =>
{
    if (args.Message.Contains("buy"))
        ExecuteMarketOrder(TradeType.Buy, SymbolName, Symbol.QuantityToVolumeInUnits(0.01));
};
Chart.AddControl(webView);
```

Python:

```python
def on_start(self):
    webView = WebView()
    webView.NavigateToStringAsync("<html><body><button onclick=\"window.chrome.webview.postMessage('buy')\">Buy</button></body></html>")
    webView.WebMessageReceived += self.on_web_message_received
    api.Chart.AddControl(webView)

def on_web_message_received(self, args):
    api.Print(f"Message from {args.Source}: {args.Message}")
```

