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>

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM