这篇文章主要介绍了C# 使用Microsoft Edge WebView2的相关总结,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
一、C#和JS互相调用
1、js调用C#
C#代码如下:
webView.CoreWebView2.AddHostObjectToScript("webBrowserObj", new ScriptCallbackObject());
await webView.CoreWebView2.AddScriptToExecuteOnDocumentCreatedAsync("var webBrowserObj= window.chrome.webview.hostObjects.webBrowserObj;");
像网页里面注入变量,这样网页调用时候不用每次写window.chrome.webview.hostObjects.webBrowserObj调用,最主要的是为了兼容之前cef里面Js的写法。
[ClassInterface(ClassInterfaceType.AutoDual)]
[ComVisible(true)]
/// <summary>
/// 网页调用C#方法
/// </summary>
public class ScriptCallbackObject
{
public string UserName { get; set; } = "我是C#属性";
public void ShowMessage()
{
MessageBox.Show("网页调用C#");
}
public void ShowMessageArg(string arg)
{
MessageBox.Show("【网页调用C#】:" + arg);
}
public string GetData(string arg)
{
return "【网页调用C#获取数据】;" + arg;
}
[System.Runtime.CompilerServices.IndexerName("Items")]
public string this[int index]
{
get { return m_dictionary[index]; }
set { m_dictionary[index] = value; }
}
private Dictionary<int, string> m_dictionary = new Dictionary<int, string>();
}
JS调用如下;
function callCsharp2() {
var data2 = $("#txtArg").attr("value"); //大坑 值不会时刻变化 // alert(data2); var data = $("#txtArg").val();
window.chrome.webview.hostObjects.webBrowserObj.ShowMessageArg(data); //window.chrome.webview.postMessage(data); };
async function callCsharp3() {
var data = $("#txtArg").val();
var result = await webBrowserObj.GetData(data);
alert(result);
};
async function callCsharp4() {
const propValue = await webBrowserObj.UserName;
console.log(propValue);
alert(propValue);
};
2、C#调用JS
private void callJS_Click(object sender, RoutedEventArgs e)
{
webView.CoreWebView2.ExecuteScriptAsync("ShowMessage()");
}
private void callJSArg_Click(object sender, RoutedEventArgs e)
{
webView.CoreWebView2.ExecuteScriptAsync($"ShowMessageArg('{txtArg.Text}')");
}
private async void callJSGetData_Click(object sender, RoutedEventArgs e)
{
var jsResult = await webView.CoreWebView2.ExecuteScriptAsync($"GetData('{txtArg.Text}')");
if (!string.IsNullOrEmpty(jsResult))
{
MessageBox.Show(jsResult);
}
}
js里面的代码
//2、C#调用网页
var jsVar = '123';
function Hello() {
alert('调用Js' + jsVar);
};
function ShowMessage() {
alert('我是网页');
};
function ShowMessageArg(arg) {
alert('【我是网页消息框】' + arg);
};
function GetData(arg) {
return '【我是网页返回给你】:' + arg;
};
二、缩放问题
webView.CoreWebView2.Settings.IsZoomControlEnabled = false;
只能禁止鼠标缩放,不能禁止手势缩放。 见问题
另外触摸到底部门的时候 有弹跳,暂时也无法解决。
以上就是C# 使用Microsoft Edge WebView2的相关总结的详细内容,更多关于C# 使用Microsoft Edge WebView2的资料请关注得得之家其它相关文章!
沃梦达教程
本文标题为:C# 使用Microsoft Edge WebView2的相关总结
基础教程推荐
猜你喜欢
- 从 VB6 迁移到 .NET/.NET Core 的最佳策略或工具 2022-01-01
- C# - 如何列出发布到 ASPX 页面的变量名称和值 2022-01-01
- 我什么时候应该使用 GC.SuppressFinalize()? 2022-01-01
- Page.OnAppearing 中的 Xamarin.Forms Page.DisplayAlert 2022-01-01
- 如何使用OpenXML SDK将Excel转换为CSV? 2022-01-01
- 创建属性设置器委托 2022-01-01
- C# - 将浮点数转换为整数...并根据余数更改整数 2022-01-01
- 当键值未知时反序列化 JSON 2022-01-01
- 使用 SED 在 XML 标签之间提取值 2022-01-01
- 覆盖 Json.Net 中的默认原始类型处理 2022-01-01