`
bean-woo
  • 浏览: 134974 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

WinForm与Javascript交互

阅读更多

在应用程序的集成过程中,有时候需要WinForm应用程序和Javascript程序进行交互。比如说:应用程序是一个综合调度系统,在整个综合调度系统中,要实现定位,显示地图。综合调度平台的大部分功能都是使用WinForm实现的;但是定位和地图部分都不是自己开发的需要使用第三方接口,实现地图的展示,而第三方的接口使用的是Javascript实现的。这种情况有一下两种方法解决:

l  浏览器显示地图,WinForm实现综合调度台的其他功能,使用socket通信方式或者其他方式实现web浏览器和综合调度台之间的一种交互。

l  使用WinFormJS之间的直接交互。

以上两种方法:第一种方法明显的缺点就是:整个综合调度台的风格不一致,而且在开发过程中,调试麻烦,调试过程受网络的影响较大。第二中方法却从根本上克服了以上所有缺点。

如何实现WinFormJavascript之间的交互成为解决这个问题的核心问题。所谓交互就是WinForm的应用程序能够调用Javascript的程序接口,同时JS的程序也能够调用WinForm的应用程序接口。

l  首先创建一个网页命名为:text.html  假设该网页的路径为:D:\\text.html  

l  创建一个WinForm应用程序,在应用程序窗体上添加一个浏览器控件:webBrowser1 

Text.html 的代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

 

<title>Main Page</title>

 

<script type="text/javascript" language="javascript">

function  ShopXG(obj)

 {

        alert(obj);

  //alert("我要开网店、携购独立网店系统,模板最全,最专业的系统!");

 }

 

 

 function  InvokeFunc()

 {

  window.external.ShowMessage("呵呵");

 }

 

 

 

         </script>

</head>

<body>

         <input type="button" id="aa" value="测试" onclick="InvokeFunc();"/>

</body>

 

 

WinForm的窗体Form1中添加一个button按钮。Button1用来测试调用JS事件

 

WinForm的后台代码如下:

 

 

    //要想调用JS的类都需要添加一下两句

 

[PermissionSet(SecurityAction.Demand, Name ="FullTrust")]

    [System.Runtime.InteropServices.ComVisibleAttribute(true)]

    publicpartialclassForm1:Form

    {

        publicForm1()

        {

            InitializeComponent();

            this.webBrowser1.Url =newUri("D:\\text.html");

            webBrowser1.ObjectForScripting =this;    //这句是必不可少的,是调用JS的前提

        }

 

        privatevoidbutton1_Click(objectsender,EventArgse)

        {

            webBrowser1.Document.InvokeScript("ShopXG",newobject[]{"这是WinForm调用JS的一个测试!"});

        }

 

 

        publicvoidShowMessage(stringmessage)

        {

            MessageBox.Show("这是JS调用的WinFormc程序的一个测试!");

        }

 

分享到:
评论

相关推荐

    c# winform与html交互

    `WebBrowser`控件不仅支持标准的HTML,还支持CSS、JavaScript等Web技术,这为WinForm与HTML的交互提供了基础。 **三、WinForm与HTML的交互方式** 1. **JavaScript调用C#代码:** 使用`WebBrowser`控件的`Document`...

    Unity3D与Winform交互

    为了与Winform交互,我们可以利用JavaScript和C#之间的桥接技术,如UnityWebPlayer或Unity WebGL Player。通过JavaScript接口(JSAPI)在WebGL实例中定义函数,然后在Winform应用中使用WebBrowser控件加载Unity3D...

    HTML与WinForm交互

    HTML与WinForm交互是.NET框架下,特别是Visual Basic(VB.NET)开发中的一种技术,它允许开发者在Windows桌面应用程序(WinForm)中嵌入Web浏览器控件(WebBrowser),并通过此控件与HTML页面进行双向通信,从而创建...

    c#winform和flash交互

    本文将深入探讨如何在C# WinForms应用程序中与Flash进行交互,实现两者之间的数据通信和功能集成。 首先,理解WinForms和Flash交互的基本原理至关重要。Flash可以通过ActionScript提供对外部接口(External ...

    winform窗体中嵌入网页与JS交互

    在Windows Forms(Winform)应用开发中,有时候我们需要在窗体中展示网页内容,并且能够与网页中的JavaScript代码进行交互,实现数据的双向传递。这种技术通常用于在桌面应用程序中集成Web功能,例如显示动态更新的...

    WinForm下WebView2实现JS与C#交互Demo

    在.NET Framework或.NET Core的Windows Forms(WinForm)应用程序中,常常需要集成Web视图以展示网页内容,并可能需要与网页中的JavaScript代码进行交互。微软提供了WebView2控件,它是Chromium内核的新一代Web视图...

    WinForm与百度地图交互

    首先,要实现WinForm与百度地图的交互,我们需要做以下准备: 1. 注册百度地图API:访问百度地图开放平台(http://lbsyun.baidu.com/),注册账号并创建应用,获取API密钥。这个密钥将在之后的代码中用于验证请求...

    C# Winform中使用WebBroser与Html进行交互

    在C# WinForm应用开发中,我们经常需要与HTML页面进行交互,这通常是通过集成WebBrowser控件来实现的。WebBrowser控件是.NET Framework提供的一种强大工具,它允许我们在桌面应用程序中嵌入一个Web浏览器,进而实现...

    winform+flash交互

    本文将深入探讨如何在C#环境下实现Winform与Flash的交互。 首先,要实现Winform与Flash的交互,我们需要使用Adobe提供的Flash Player ActiveX控件。这个控件可以让Flash内容嵌入到Winform应用程序中。在C#项目中,...

    winform调用javascript的小例子

    #### WinForm与JavaScript交互机制 本示例主要介绍在WinForm应用程序中如何调用JavaScript代码,并实现JavaScript与WinForm之间的双向通信。WinForm是.NET框架提供的用于构建Windows桌面应用程序的用户界面库,而...

    WinForm与Web的进程内交互

    2. **性能:** JavaScript与WinForm的交互可能导致性能问题,特别是在处理大量数据或复杂逻辑时。优化代码,减少不必要的交互次数。 **五、示例代码** 以下是一个简单的示例,展示了如何从WinForm调用JavaScript...

    webBrower控件实现winform和webpage交互

    为了能够有效地使用WebBrowser控件与WebPage进行交互,掌握DOM(Document Object Model)基础和JavaScript脚本至关重要。 **DOM**是用于HTML和XML文档的对象模型,它可以将文档解析为树状结构,让开发者能够通过...

    c#WINFORM与WEB的直接交互非webservice方法

    这样,WinForm应用可以控制WebBrowser控件执行JavaScript,与网页中的元素进行交互,甚至触发AJAX请求。 3. **Web API间接交互**:虽然不是直接与Web服务器交互,但可以创建一个本地的Web API服务,WinForm应用调用...

    Winform中使用CefSharp和js互相调用方法

    Winform中使用CefSharp和js互相调用方法,Winform中使用CefSharp和js互相调用方法,Winform中使用CefSharp和js互相调用方法,Winform中使用CefSharp和js互相调用方法 vs2019.debug目录下有cef所需要的文件,在其他...

    C# winform cefsharp63 示例代码包含与js交互,chrome63,支持mp3,mp4,摄像头

    在本文中,我们将深入探讨如何使用C# WinForm结合CefSharp63库来创建一个功能丰富的应用程序,该程序能够实现JavaScript交互、播放MP3和MP4媒体文件以及调用摄像头。CefSharp是一个.NET封装的Chromium Embedded ...

    winform与内嵌echarts的数据交互,让数据动起来.zip

    本项目"winform与内嵌echarts的数据交互,让数据动起来.zip"旨在展示如何在WinForm应用中集成ECharts,使数据动态呈现。 首先,要将ECharts引入WinForm,我们需要借助HTML和WebBrowser控件。WebBrowser控件允许我们...

    c# winform 中怎样来调用B/S中的JavaScript的方法

    在C# WinForm应用中调用B/S架构中的JavaScript方法主要涉及到的是客户端与服务器端的交互问题。在传统的Web开发中,B/S架构通常由浏览器(客户端)与服务器(后端)组成,而C# WinForm是桌面应用程序,它们之间进行...

    winform与webform通信

    - **AJAX**:WebForm中的PageMethods或UpdatePanels可以与JavaScript进行异步通信,然后JavaScript可以与WinForm中的ActiveX控件交互。 - **SignalR**:这是一个实时通信库,允许双向通信,可以实现实时更新和推送...

    webview与js交互demo

    在Android开发中,WebView是一个非常重要的组件,它允许开发者在应用程序中嵌入网页内容,并且可以实现JavaScript与原生代码的交互。这个“webview与js交互demo”就是专门为了展示这种交互机制的一个实例。在该示例...

    CefSharp调用google浏览器内核ChromiumWebBrowser,与JS交互源码

    CefSharp提供了两种方式与网页内的JavaScript进行交互:`ExecuteScriptAsync` 和 `RegisterJsObject`。 1. 异步执行JS脚本: ```csharp browser.ExecuteScriptAsync("alert('Hello from C#!');"); ``` 2. 注册C#...

Global site tag (gtag.js) - Google Analytics