WebView网页控件使用教程

从本站购买授权控件库,把许可证命名为GTKSystem.Windows.Forms.WebBrowser.license

引用webview的工程项目,需要引入以下类:

GtkSharp.dll
GTKSystem.Windows.Forms.dll
GTKSystem.Windows.Forms.WebBrowser.dll
Microsoft.Web.WebView2.Core.dll
    webview提供6个接口:
    public interface IWebBrowser
    {
        event ResponseChangeHandler ResponseChange;
        event WebCallbackHandler WebCallback;
        void GetWebContent(System.Action<string> webcontent);
        void NavigateHtml(string html);
        void NavigateUri(string uri);
        Task<string> ExcuteScript(string js);
    }

前后端程序互调:

(1)js回调c#:webview控件内置了一个js回调方法webview_callback(message),在网页端执行方法 webview_callback(message),可以在c#端事件 event WebCallbackHandler WebCallback 上返回message。

(2)c#端执行js:执行方法 Task ExcuteScript(string js) ,如需返回值,需要在js上执行webview_callback(message)
如:

  webBrowser.ExcuteScript(" webview_callback('这是发送内容') ") .ContinueWith(t => {
          Console.WriteLine(t.Result); //接收内容'这是发送内容'
    });

程序示例:


        public FormWeb()
        {
            InitializeComponent();
 
            //使用方法一
            webBrowser = new WebviewBox();
            webBrowser.Width = 300;
            webBrowser.Height = 500;
            webBrowser.Dock = DockStyle.Fill;
            webBrowser.ResponseChange += WebBrowser_ResponseChange;
            webBrowser.WebCallback += WebBrowser_WebCallback;
            panel1.Controls.Add(webBrowser);
            // 注:panel1是一个容器控件,如Panel,用于设计占位
            //使用方法二
            //webBrowser = new WebBrowser(this, panel1);
            //webBrowser.ResponseChange += WebBrowser_ResponseChange;
            //webBrowser.WebCallback += WebBrowser_WebCallback;
        }
        private void WebBrowser_ResponseChange(object? sender, int statusCode, string mimeType)
        {
            Console.WriteLine($"{statusCode},{mimeType}");
        }
        private void WebBrowser_WebCallback(string message)
        {
            Console.WriteLine($"{message}");
        }
        private void Button1_Click(object sender, EventArgs e)
        {
            webBrowser.NavigateUri("https://www.baidu.com"); //打开网页
        }

滚动至顶部