服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C# - C# 使用Microsoft Edge WebView2的相关总结

C# 使用Microsoft Edge WebView2的相关总结

2022-11-02 11:11ColorsWin C#

这篇文章主要介绍了C# 使用Microsoft Edge WebView2的相关总结,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下

一、C#和JS互相调用 

1、js调用C# 

C#代码如下:

?
1
2
3
 webView.CoreWebView2.AddHostObjectToScript("webBrowserObj", new ScriptCallbackObject());
 
 await webView.CoreWebView2.AddScriptToExecuteOnDocumentCreatedAsync("var webBrowserObj= window.chrome.webview.hostObjects.webBrowserObj;");

像网页里面注入变量,这样网页调用时候不用每次写window.chrome.webview.hostObjects.webBrowserObj调用,最主要的是为了兼容之前cef里面Js的写法。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
[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调用如下;

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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里面的代码

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//2、C#调用网页
  var jsVar = '123';
  function Hello() {
   alert('调用Js' + jsVar);
  };
 
  function ShowMessage() {
   alert('我是网页');
  };
  function ShowMessageArg(arg) {
   alert('【我是网页消息框】' + arg);
  };
  function GetData(arg) {
   return '【我是网页返回给你】:' + arg;
  };

二、缩放问题

?
1
webView.CoreWebView2.Settings.IsZoomControlEnabled = false;

只能禁止鼠标缩放,不能禁止手势缩放。 见问题

另外触摸到底部门的时候 有弹跳,暂时也无法解决。

以上就是C# 使用Microsoft Edge WebView2的相关总结的详细内容,更多关于C# 使用Microsoft Edge WebView2的资料请关注服务器之家其它相关文章!

原文链接:https://www.cnblogs.com/ColorsWin/p/14440412.html

延伸 · 阅读

精彩推荐
  • C#c# Newtonsoft.Json 常用方法总结

    c# Newtonsoft.Json 常用方法总结

    这篇文章主要介绍了c# Newtonsoft.Json 常用方法的相关资料,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下...

    丹枫无迹9562022-11-01
  • C#c# 实时曲线图示例代码

    c# 实时曲线图示例代码

    这篇文章主要介绍了如何用c# 实现实时曲线图,文中讲解非常细致,代码帮助大家更好参考和学习,感兴趣的朋友可以了解下...

    金灿灿6332022-09-15
  • C#C#编程实现四舍五入、向上及下取整的方法

    C#编程实现四舍五入、向上及下取整的方法

    这篇文章主要介绍了C#编程实现四舍五入、向上及下取整的方法,涉及C#数学运算的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...

    碧水寒潭4152021-11-03
  • C#c#将字节数组转成易读的字符串的实现

    c#将字节数组转成易读的字符串的实现

    这篇文章主要介绍了c#将字节数组转成易读的字符串的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的...

    森大科技4922022-08-17
  • C#适用于WebForm Mvc的Pager分页组件C#实现

    适用于WebForm Mvc的Pager分页组件C#实现

    这篇文章主要为大家分享了适用于WebForm Mvc的Pager分页组件,由C#实现,感兴趣的小伙伴们可以参考一下...

    香草柠檬5152021-11-18
  • C#C# 标准事件流实例代码

    C# 标准事件流实例代码

    这篇文章主要介绍了C# 标准事件流的实例代码,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下...

    滑猪小板6852022-09-28
  • C#c# 断点续传的实现

    c# 断点续传的实现

    这篇文章主要介绍了c# 断点续传的实现,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...

    sparkdev4302022-10-19
  • C#快速解决owin返回json字符串多带了双引号"多了重string转义字符串

    快速解决owin返回json字符串多带了双引号"多了重string转义字符

    下面小编就为大家带来一篇快速解决owin返回json字符串多带了双引号"多了重string转义字符串。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。...

    C#教程网4502021-12-02