上篇已经介绍了WebView2的背景,今天有时间尝试一下,文档地址:https://docs.microsoft.com/zh-cn/dotnet/api/microsoft.web.webview2.winforms.webview2.executescriptasync?view=WebView2-dotnet-1.0.664.37
注意事项:1.虽然文档中写着.net 4.6.2可以运行 但在安装nuget后 工具栏并未出现WebView2组件,切换到4.7.2后工具栏才会出现WebView2组件
2.webView2主要依赖预CoreWebView2
主要方法有:
webView21.CoreWebView2.OpenDevToolsWindow(); 打开开发者选项;
webView21.CoreWebView2.ExecuteScriptAsync("window.alert('ccucic')"); 执行JavaScript
webView21.CoreWebView2.Reload(); 刷新
webView21.CoreWebView2.AddHostObjectToScript("bridge", new UserInfo()); 这个方法 需要注意的是 不能放在窗体Load事件中 前端调用示例
<!doctype html>
<html>
<head>
<title>测试JavaScript与C#交互</title>
<script>
// 11111111111
async function getInfo(){
const bridge = chrome.webview.hostObjects.bridge;
const propValue = await bridge.Prop;
console.log(propValue);
}
</script>
</head>
<body>
<button onclick="getInfo()">获取年龄</button>
</body>
</html>