Winform 嵌入html,数据交互

简介: Winform 嵌入html,数据交互

Winform 嵌入html,数据交互,将JS中的数据等传给winform

点击浏览器中的按钮,触发 Winform 中的方法

https://github.com/cefsharp/CefSharp

 

 

C# Code

namespace SharpBrowser
{
    public partial class WebViewTest : Form
    {
        public ChromiumWebBrowser chromeBrowser;
        public WebViewTest()
        {
            InitializeComponent();
            InitializeChromium();
        }
        //初始化浏览器并启动
        public void InitializeChromium()
        {
            CefSettings settings = new CefSettings();
            CefSharpSettings.LegacyJavascriptBindingEnabled = true;
            // Initialize cef with the provided settings
            Cef.Initialize(settings);
            // Create a browser component
            chromeBrowser = new ChromiumWebBrowser("http://172.16.0.66/C/");
    
            CefSharpSettings.LegacyJavascriptBindingEnabled = true;
            CefSharpSettings.WcfEnabled = true;
            chromeBrowser.JavascriptObjectRepository.Register("jsObj", new SendCarBillPrint(), isAsync: false, options: BindingOptions.DefaultBinder);
    
            // 将浏览器控件添加到当前Form窗体中
            this.Controls.Add(chromeBrowser);
            chromeBrowser.Dock = DockStyle.Fill; //充满显示
        }
    
        //窗体关闭时,记得停止浏览器
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            Cef.Shutdown(); //重要
        }
    }
    class SendCarBillPrint
    {
        public string sendCode { set; get; }
    
        public void invoke()
        {
            MessageBox.Show("JS 调用=>" + sendCode);
        }
    }
}

HTML Code

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Test</title>
</head>
<body>
<div id="app">
     <div>
         <button id="bth">anwo</button>
         hello chen
     </div>  
  </div>
</body>
</html>
<!-- <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script> -->
<script type="text/javascript" src="https://lib.baomitu.com/jquery/3.5.0/jquery.min.js"></script>
<script type="text/javascript">
    var jsObj;
    $(document).ready(function () {
         
            document.querySelector('#bth').onclick = function () {
                if (jsObj == undefined)
                {
                    alert("请使用客户端操作");
                    return;
                }
                jsObj.sendCode = 'abc';
                jsObj.invoke();
            }  
    }) 
</script>

 

 

 

目录
相关文章
|
5月前
|
监控 JavaScript 前端开发
JavaScript与HTML关系及其嵌入方式:新手常犯错误与规避策略
【4月更文挑战第1天】本文介绍了JavaScript与HTML的关系,强调了理解它们的分工和协作对于初学者的重要性。文中列举了新手在嵌入JavaScript时常见的错误,如嵌入位置不当、异步与延迟属性混淆、内联脚本与HTML混杂、忽略浏览器兼容性以及缺乏错误处理。提供了避免这些错误的策略,包括合理安排script标签、使用事件监听器、关注浏览器兼容性、学习调试技巧,并提倡遵循“结构-样式-行为”分离原则和使用错误处理机制。遵循这些最佳实践,有助于提高代码质量和开发效率。
84 1
|
JavaScript
Vue中 使用 iframe 嵌入本地 HTML 页面 并 相互通信
Vue中 使用 iframe 嵌入本地 HTML 页面 并 相互通信
1709 0
Vue中 使用 iframe 嵌入本地 HTML 页面 并 相互通信
|
JavaScript 大数据 BI
Superset图表通过iframe嵌入Html网页展示一文详解
Superset图表通过iframe嵌入Html网页展示一文详解
1761 0
Superset图表通过iframe嵌入Html网页展示一文详解
|
1月前
|
移动开发 前端开发 JavaScript
Twaver-HTML5基础学习(10)嵌入Table
本文介绍了如何在Twaver HTML5中嵌入表格(Table),并设置表格的列(Column)和样式。通过示例代码展示了如何在React组件中创建表格并添加数据,以及如何通过样式设置表格元素的颜色。
30 2
Twaver-HTML5基础学习(10)嵌入Table
|
12天前
|
移动开发 HTML5
在HTML5中嵌入视频和音频
【10月更文挑战第5天】在HTML5中嵌入视频和音频。
26 3
|
5月前
|
移动开发 定位技术 UED
《HTML 简易速速上手小册》第7章:HTML 多媒体与嵌入内容(2024 最新版)
《HTML 简易速速上手小册》第7章:HTML 多媒体与嵌入内容(2024 最新版)
78 0
|
5月前
|
JavaScript C#
C#winForm程序与html JS交互调用
C#winForm程序与html JS交互调用
|
5月前
|
JavaScript
Vue中嵌入原生HTML页面的方法
Vue中嵌入原生HTML页面的方法
1816 0
|
5月前
|
前端开发
SAP UI5 应用如何使用 iframe 嵌入其他 HTML 页面试读版
SAP UI5 应用如何使用 iframe 嵌入其他 HTML 页面试读版
|
11月前
|
缓存 UED
如何删除 Angular SSR 应用 State Transfer 嵌入到 HTML 里的某些字段
如何删除 Angular SSR 应用 State Transfer 嵌入到 HTML 里的某些字段