提交 3f565437 编写于 作者: M Martin Zikmund

test: WebMessageReceived runtime test support for iOS/macOS

上级 8072eccb
......@@ -49,42 +49,43 @@ public class Given_WebView2
webView.Height = 200;
border.Child = webView;
TestServices.WindowHelper.WindowContent = border;
bool navigated = false;
await TestServices.WindowHelper.WaitForLoaded(border);
await webView.EnsureCoreWebView2Async();
webView.NavigationCompleted += (sender, e) => navigated = true;
string message = null;
webView.WebMessageReceived += (s, e) =>
{
message = e.WebMessageAsJson;
};
webView.NavigateToString(
"""
<html>
<body>
<head>
<script type="text/javascript">
function sendMessage(){
try{
const message = {"some": ['values',"in","json",1]};
if (typeof chrome !== 'undefined' &&
chrome?.webview?.postMessage){
if (window.hasOwnProperty("chrome") && chrome?.webview?.postMessage){
chrome.webview.postMessage(message);
} else if (unoWebMessageHandler){
} else if (window.hasOwnProperty("unoWebMessageHandler")){
unoWebMessageHandler?.postMessage(JSON.stringify(message));
} else if (window.hasOwnProperty("webkit") && webkit?.messageHandlers?.unoWebView?.postMessage){
webkit.messageHandlers.unoWebView.postMessage(JSON.stringify(message));
}
}
catch (ex){
alert("wtf" + ex);
alert("Error occurred: " + ex);
}
}
</script>
</head>
<body onload="sendMessage();">
<div id='test' style='width: 100px; height: 100px; background-color: blue;' />
</body>
</html>
""");
await TestServices.WindowHelper.WaitFor(() => navigated);
string message = null;
webView.WebMessageReceived += (s, e) =>
{
message = e.WebMessageAsJson;
};
await webView.ExecuteScriptAsync("sendMessage()");
await TestServices.WindowHelper.WaitFor(() => message is not null);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册