zoukankan      html  css  js  c++  java
  • c# winform中使用WebKit实现网页与winform的交互

    1.工作 一年多了,一直没对自己在工作遇到的问题进行总结,每次遇到问题都要在网上找资料,导致完成项目之后,时间久了就会生疏。所以下定 决定总结自己在工作中遇到的各种问题。

    进入正题:第一次写还请大神多多包涵,有不对的地方也请指点指点。

    我在项目中 使用的是open-webkit-sharp:它是对webkit.net的又一次封装,提供了很多新功能。

    google下载地址 :https://code.google.com/archive/p/open-webkit-sharp/ 

    github网址 : https://github.com/Erls-Corporation/open-webkit-sharp

    开发工具:Vs2017

    下载之后 解压压缩包. 把Core文件夹和References文件夹下所有文件拷贝到你的工程目录(bin)下,然后打开你的项目,添加引用OpenWebKitSharp.dll和WebKit.Interop.dll(如果你的项目运行在.NET Framework 2.0 或 3.5 引用 Binary_NET2文件夹下的这两个文件,NET4.0的话就引用Binary文件夹下的这两个dll);

    到自己的WinForm程序,在工具箱选择按右键-选择项 

    点击浏览选择OpenWebKitSharp.dll,然后把WebKitBrowser拖到winfrom窗体里。

    想要html页面访问后台   必须在前面加上

    //当前类可以com组件的形式供外包调用
    //[ComVisible(true)]
    //[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
    [PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
    [System.Runtime.InteropServices.ComVisibleAttribute(true)]

    winfrom后台程序

    public class myClass
    {
    public int Test(int a ,int b)
    {
    //System.Windows.Forms.MessageBox.Show("alert:JS回调成功");

    int c = a * b;
    return c;
    //System.Windows.Forms.MessageBox.Show("JS回调值alert:"+c);
    }

    }
    private void Form1_Load(object sender, EventArgs e)

    webKitBrowser1.Navigate("url");
    this.webKitBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webKitBrowser1_DocumentCompleted);

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

    }

     1 public class myClass
     2 {
     3 public int Test(int a ,int b)
     4 {
     5 //System.Windows.Forms.MessageBox.Show("alert:JS回调成功");
     6 
     7 int c = a * b;
     8 return c;
     9 //System.Windows.Forms.MessageBox.Show("JS回调值alert:"+c);
    10 }
    11 
    12 }
    13 private void Form1_Load(object sender, EventArgs e)
    14 { 
    15 webKitBrowser1.Navigate("url");
    16 this.webKitBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webKitBrowser1_DocumentCompleted);
    17 
    18 }
    19 public void webKitBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    20 {
    21 this.webKitBrowser1.GetScriptManager.ScriptObject = new myClass();
    22 
    23 }
    View Code

    html里的调用代码

    window.external.后台调用的方法

  • 相关阅读:
    我经历的IT公司面试及离职感受(转)
    一个优异的经理人,碰到糟糕的企业,最后往往存在的还是那间糟糕的企业(转)
    Android TextView和EditText属性详解
    Android EditText控件行尾为表情时的BUG
    Android安全问题 抢先拦截短信
    Android安全问题 抢先开机启动
    Android安全问题 抢先接收广播
    Android安全问题 抢先接收广播
    Android 监听EditView中的文本改变事件
    Android EditText中插入图片并响应点击事件
  • 原文地址:https://www.cnblogs.com/wxxf/p/9119315.html
Copyright © 2011-2022 走看看