C#winform使用open-webkit-sharp,webKitBrowser与html交互

 

 

最近开发winForm项目用到open-webkit-sharp,自己研究一下分享给大家。

开发环境:vs2017,OpenWebKitSharp 3.0.1.0023

1、首先要下载OpenWebKitSharp ,推荐去google下载(http://code.google.com/p/open-webkit-sharp/),github文件太多下载速度较慢;

2、新建一个winForm工程,将下载的openwebkitsharp文件解压缩,

从open-webkit-sharp-master文件夹中把Core文件夹和References文件夹中的文件复制到Demo的Debug文件夹下

从Binary下把JSCore.dll,OpenWebKitSharp.dll,OpenWebKitSharp.manifest,WebKit.Interop.dll复制到Demo的Debug文件夹下,选择替换(如果使用的是Framework2.0的框架则复制Binary NET2下面的文件)。

3、添加引用

4、在工具箱中添加webKitBrowser控件,在vs顶部的工具选项卡中,点击“选择工具箱项”,点击“浏览”,在工程的debug目录下找到OpenWebKitSharp.dll,点击“打开”,然后点击“确定”。之后再工具箱中找到webKitBrowser控件拖到form中,顺便也拖个button,为了后边的交互做准备。

5、废了这么大的劲还没有走到正道上,哇咔咔,干粮终于来了。新建一个html文件,随便建一个div,添加一个带有点击事件的标签,我这里用image(这个是准备去调用C#的);

  <img alt="" src="/image/home.png" style="height: 79px; width: 110px" onclick="window.external.Test('www.baidu.com'); return false" />

顺便把C#调用JavaScript的代码也写过来:

  function message(jsStr) {
            eval(jsStr);
    }

6、开始操作C#代码,双击button添加点击事件,说明一下,html文件中还需要有一个id是“text”的标签;这个就是C#调用js的关键代码;

   private void button1_Click(object sender, EventArgs e)
        {


            webKitBrowser1.UseJavaScript = true;
            string strScript = "messageBox(document.getElementById('text').innerText = '123456')";
            webKitBrowser1.StringByEvaluatingJavaScriptFromString(strScript);
        }

7、js调用C#就稍稍麻烦一些,在Form设计里双击webKitBrowser添加代码。

 private void webKitBrowser1_Load(object sender, EventArgs e)
        {

            webKitBrowser1.OpenDocument(AppDomain.CurrentDomain.BaseDirectory + "www/block_test_pc/async-execution.html");//路径是在自己工程目录bin/debug/www/...自己可以修改
            webKitBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webKitBrowser1_DocumentCompleted);
            webKitBrowser1.Dock = DockStyle.Fill;//充满窗口 

        }
        void webKitBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            this.webKitBrowser1.GetScriptManager.ScriptObject = new Form1();

        }


        public void Test(string msg)
        {
            MessageBox.Show("123456789");
        }

大功告成,哇咔咔!!!

 

这只是实现了基本功能,欢迎交流学习。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章