C# 使用CefSharp向JS相互传参

C# 使用CefSharp向JS相互传参

1.新建Winform控件并点击查看代码

2添加CefSharp引用

3.初始化CefSharp

//初始化
public ChromiumWebBrowser browser;
        public void InitBrowser()
        {
            CefSettings settings = new CefSettings();
            Cef.Initialize(settings);
            CefSharpSettings.LegacyJavascriptBindingEnabled = true;
            CefSharpSettings.WcfEnabled = true;
            browser = new ChromiumWebBrowser("http://127.0.0.1:8848/CarWay/TestWinfor.html");
            browser.Dock = DockStyle.Fill;//铺满 
            this.Controls.Add(browser);//加入窗体
            //注册方法//注册JsObj对象JS调用C#
            browser.JavascriptObjectRepository.Register("JsObj", new getWinFormData(browser,this),isAsync:false);
        }

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            Cef.Shutdown();
        }

4.自定义Js调用C#   

 //自定义类(JS调用C#)
    public class getWinFormData
    {
        private static ChromiumWebBrowser chromiumWebBrowser;
        private static Form1 form1;

        private int GysId = 1;
        private String CarCode = "宁*****";
        private String start = "2020-07-19 8:20:10";
        private String end = "2020-7-20 18:16:00";
        //构造方法
        public getWinFormData(ChromiumWebBrowser OriginachromiumWebBrowser ,Form1 Originaform1)
        {
            chromiumWebBrowser = OriginachromiumWebBrowser;
            form1 = Originaform1;
        }
        /// 窗口加载完毕时需要出发的全局JS对象
        public void OnFrameLoadEnd(object sender, FrameLoadEndEventArgs e)
        {
            if (e.Frame.IsMain)
            {
                chromiumWebBrowser.ExecuteScriptAsync(@"
              document.body.onmouseup = function()
              {
                JsObj.onSelected(window.getSelection().toString());
              }
            ");
            }
        }
        public void showAlertMsg(string msg)
        {
            MessageBox.Show("C#窗体:"+ msg);
        }
        public string readIdCard()
        {
            //MessageBox.Show("C#窗体:" + GysId + CarCode + start + end);
            return GysId + CarCode + start + end;
        }
        //前端JS调用的方法
        public int getGysId()
        {
            return GysId;
        }
        public String getCarCode()
        {

            return CarCode;
        }
        public String getStart()
        {
            return start;
        }
        public String getEnd()
        {
            return end;
        }

    }

5.网页Demo

<!DOCTYPE html>
<html style="overflow: hidden;">
<head>

</head>
<body >
    <div>
        <button onclick="test2()">测试弹出框</button>
        <button onclick="test1()">读取身份证信息</button>
        身份证信息<textarea id="idcardmsg"></textarea>
    </div>
<script>
    function test1() {
		var idcardmsg = document.getElementById("idcardmsg").value;
        JsObj.showAlertMsg(idcardmsg);
    }
 
    function test2() {
        var result = JsObj.readIdCard();
        alert(result);
    }
 
</script>
</body>
</html>

6运行

网页端成功获取C#端数据

成功调用C#端弹窗向C#传参数。

 

如果对你有帮助可打赏支持一下哦嘻嘻!!!

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你看不见-joy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值