大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全家桶1年46,售后保障稳定
在应用程序的集成过程中,有时候需要WinForm应用程序和Javascript程序进行交互。比如说:应用程序是一个综合调度系统,在整个综合调度系统中,要实现定位,显示地图。综合调度平台的大部分功能都是使用WinForm实现的;但是定位和地图部分都不是自己开发的需要使用第三方接口,实现地图的展示,而第三方的接口使用的是Javascript实现的。这种情况有一下两种方法解决:
1,浏览器显示地图,WinForm实现综合调度台的其他功能,使用socket通信方式或者其他方式实现web浏览器和综合调度台之间的一种交互。
2,使用WinForm的JS之间的直接交互。
以上两种方法:第一种方法明显的缺点就是整个综合调度台的风格不一致,而且在开发过程中,调试麻烦,调试过程受网络的影响较大。第二种方法却从根本上克服了以上所有缺点。
如何实现WinForm和Javascript之间的交互成为解决这个问题的核心问题。所谓交互就是WinForm的应用程序能够调用Javascript的程序接口,同时JS的程序也能够调用WinForm的应用程序接口。
(1)首先创建一个网页命名为:text.html假设该网页的路径为:D://text.html
代码如下:
Main Page
functionShopXG(obj)
{
alert(obj);
//alert(“我要开网店、携购独立网店系统,模板最全,最专业的系统!”);
}
functionInvokeFunc()
{
window.external.ShowMessage(“呵呵”);
}
(2)创建一个WinForm应用程序,在应用程序窗体上添加一个浏览器控件:webBrowser1
(3)在WinForm的窗体Form1中添加一个button按钮。Button1用来测试调用JS事件。
后台代码如下:
//要想调用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程序的一个测试!”); }
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/179395.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...