在应用程序的集成过程中,有时候需要WinForm应用程序和Javascript程序进行交互。比如说:应用程序是一个综合调度系统,在整个综合调度系统中,要实现定位,显示地图。综合调度平台的大部分功能都是使用WinForm实现的;但是定位和地图部分都不是自己开发的需要使用第三方接口,实现地图的展示,而第三方的接口使用的是Javascript实现的。这种情况有一下两种方法解决:
l 浏览器显示地图,WinForm实现综合调度台的其他功能,使用socket通信方式或者其他方式实现web浏览器和综合调度台之间的一种交互。
l 使用WinForm的JS之间的直接交互。
以上两种方法:第一种方法明显的缺点就是:整个综合调度台的风格不一致,而且在开发过程中,调试麻烦,调试过程受网络的影响较大。第二中方法却从根本上克服了以上所有缺点。
如何实现WinForm和Javascript之间的交互成为解决这个问题的核心问题。所谓交互就是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程序的一个测试!");
}
分享到:
相关推荐
`WebBrowser`控件不仅支持标准的HTML,还支持CSS、JavaScript等Web技术,这为WinForm与HTML的交互提供了基础。 **三、WinForm与HTML的交互方式** 1. **JavaScript调用C#代码:** 使用`WebBrowser`控件的`Document`...
为了与Winform交互,我们可以利用JavaScript和C#之间的桥接技术,如UnityWebPlayer或Unity WebGL Player。通过JavaScript接口(JSAPI)在WebGL实例中定义函数,然后在Winform应用中使用WebBrowser控件加载Unity3D...
HTML与WinForm交互是.NET框架下,特别是Visual Basic(VB.NET)开发中的一种技术,它允许开发者在Windows桌面应用程序(WinForm)中嵌入Web浏览器控件(WebBrowser),并通过此控件与HTML页面进行双向通信,从而创建...
本文将深入探讨如何在C# WinForms应用程序中与Flash进行交互,实现两者之间的数据通信和功能集成。 首先,理解WinForms和Flash交互的基本原理至关重要。Flash可以通过ActionScript提供对外部接口(External ...
在Windows Forms(Winform)应用开发中,有时候我们需要在窗体中展示网页内容,并且能够与网页中的JavaScript代码进行交互,实现数据的双向传递。这种技术通常用于在桌面应用程序中集成Web功能,例如显示动态更新的...
在.NET Framework或.NET Core的Windows Forms(WinForm)应用程序中,常常需要集成Web视图以展示网页内容,并可能需要与网页中的JavaScript代码进行交互。微软提供了WebView2控件,它是Chromium内核的新一代Web视图...
首先,要实现WinForm与百度地图的交互,我们需要做以下准备: 1. 注册百度地图API:访问百度地图开放平台(http://lbsyun.baidu.com/),注册账号并创建应用,获取API密钥。这个密钥将在之后的代码中用于验证请求...
在C# WinForm应用开发中,我们经常需要与HTML页面进行交互,这通常是通过集成WebBrowser控件来实现的。WebBrowser控件是.NET Framework提供的一种强大工具,它允许我们在桌面应用程序中嵌入一个Web浏览器,进而实现...
本文将深入探讨如何在C#环境下实现Winform与Flash的交互。 首先,要实现Winform与Flash的交互,我们需要使用Adobe提供的Flash Player ActiveX控件。这个控件可以让Flash内容嵌入到Winform应用程序中。在C#项目中,...
#### WinForm与JavaScript交互机制 本示例主要介绍在WinForm应用程序中如何调用JavaScript代码,并实现JavaScript与WinForm之间的双向通信。WinForm是.NET框架提供的用于构建Windows桌面应用程序的用户界面库,而...
2. **性能:** JavaScript与WinForm的交互可能导致性能问题,特别是在处理大量数据或复杂逻辑时。优化代码,减少不必要的交互次数。 **五、示例代码** 以下是一个简单的示例,展示了如何从WinForm调用JavaScript...
为了能够有效地使用WebBrowser控件与WebPage进行交互,掌握DOM(Document Object Model)基础和JavaScript脚本至关重要。 **DOM**是用于HTML和XML文档的对象模型,它可以将文档解析为树状结构,让开发者能够通过...
这样,WinForm应用可以控制WebBrowser控件执行JavaScript,与网页中的元素进行交互,甚至触发AJAX请求。 3. **Web API间接交互**:虽然不是直接与Web服务器交互,但可以创建一个本地的Web API服务,WinForm应用调用...
Winform中使用CefSharp和js互相调用方法,Winform中使用CefSharp和js互相调用方法,Winform中使用CefSharp和js互相调用方法,Winform中使用CefSharp和js互相调用方法 vs2019.debug目录下有cef所需要的文件,在其他...
在本文中,我们将深入探讨如何使用C# WinForm结合CefSharp63库来创建一个功能丰富的应用程序,该程序能够实现JavaScript交互、播放MP3和MP4媒体文件以及调用摄像头。CefSharp是一个.NET封装的Chromium Embedded ...
本项目"winform与内嵌echarts的数据交互,让数据动起来.zip"旨在展示如何在WinForm应用中集成ECharts,使数据动态呈现。 首先,要将ECharts引入WinForm,我们需要借助HTML和WebBrowser控件。WebBrowser控件允许我们...
在C# WinForm应用中调用B/S架构中的JavaScript方法主要涉及到的是客户端与服务器端的交互问题。在传统的Web开发中,B/S架构通常由浏览器(客户端)与服务器(后端)组成,而C# WinForm是桌面应用程序,它们之间进行...
- **AJAX**:WebForm中的PageMethods或UpdatePanels可以与JavaScript进行异步通信,然后JavaScript可以与WinForm中的ActiveX控件交互。 - **SignalR**:这是一个实时通信库,允许双向通信,可以实现实时更新和推送...
在Android开发中,WebView是一个非常重要的组件,它允许开发者在应用程序中嵌入网页内容,并且可以实现JavaScript与原生代码的交互。这个“webview与js交互demo”就是专门为了展示这种交互机制的一个实例。在该示例...
CefSharp提供了两种方式与网页内的JavaScript进行交互:`ExecuteScriptAsync` 和 `RegisterJsObject`。 1. 异步执行JS脚本: ```csharp browser.ExecuteScriptAsync("alert('Hello from C#!');"); ``` 2. 注册C#...