winform与php交互,WinForm与Javascript交互「建议收藏」

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

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新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程序的一个测试!”); }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/179395.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月21日 下午6:36
下一篇 2022年10月21日 下午6:46


相关推荐

  • 整理:Visual Studio Code (vscode) 配置C、C++环境/编写运行C、C++(主要Windows、简要Linux)

    现在是2019.7.21,由于这阵一直在忙,今天我用最新的VSCode(Version1.36.1)和最新的Cpp插件(version0.24.0)按照本文的安装步骤从零开始试了一下,由于vscode版本和cpp插件版本更新确实变化了很多,2019年7月21日更新的我会用这个颜色(粉色?)标示出来,供大家参考进行配置。也可以参考官方文档:https://code.visualstudio.c…

    2022年4月7日
    37
  • centos6关闭防火墙

    centos6关闭防火墙输入 cat etc issue 查看版本 centos 版本 1 service 命令关闭防火墙 serviceiptab 开启防火墙 serviceiptab 重启防火墙 serviceiptab 查看防火墙状态 serviceiptab 通过 etc init d iptables 进行操作关闭防火

    2026年3月19日
    2
  • Linux下LAMP的配置详解

    Linux下LAMP的配置详解LAMP的搭建需要安装httpd  phpmysql 三个程序安装完以后先修改httpd的配置文件首先先修改全局配置文件 也就是主配置文件/etc/httpd/conf/httpd.conf将ServerRoot改为ServerRoot"/etc/httpd"将Listen改为Listen80将网站的根目录改为DocumentRoot"/var/www/html"将默认配置索引文件改…

    2022年6月6日
    38
  • 下载whl文件,离线方式安装numpy包_python离线安装pip

    下载whl文件,离线方式安装numpy包_python离线安装pip一:单独下载文件1、下载whl离线文件到本地,放到c盘根目录(任意位置均可,只是方便安装)https://pypi.org/https://www.lfd.uci.edu/~gohlke/pythonlibs/(推荐用这个地址下载whl文件,国内源,速度快。ctrl+f找到自己需要的文件)2、cmd到存放whl文件的目录3、pip安装whl离线文件pipinstall****.whl(****.whl是我们下载的whl的文件名称)二、批量下载…

    2022年8月30日
    6
  • 粘包问题怎么解决_包带粘手怎么处理

    粘包问题怎么解决_包带粘手怎么处理如何解决粘包问题粘包就是连续向对端发送两个或者两个以上的数据包,对端在一次收取中受到的数据包数量可能大于1个,当大于1个时,可能时几个包加上某个包的部分,这这干脆几个完整的包在一起。当然,也可能收到的数据只是一个包的部分,这种情况一般也叫做半包。无论是半包问题还是粘包问题,因为TCP是流式数据,所以其解决思路还是从收到的数据中把包与包的边界区分出来。如何区分,有以下三种办法。固定包长的数据包。固定包长,即每个协议包的长度都是固定的。假如我们规定每个协议包的大小都是64字节,每收满64字节,就取出来

    2022年8月11日
    11
  • axios实现跨域三种方法_react antdesign

    axios实现跨域三种方法_react antdesign1.启动springboot后端,提供接口2.在config文件夹下创建proxy.tx文件,如果存在,在dev中添加axios环境代理,例如在我的demo中添加了/asd映射到http://localhost:8889/***在生产环境代理是无法生效的,所以这里没有生产环境的配置*Theagentcannottakeeffectintheproductionenvironment*sothereisnoconfigurationoftheproduc

    2025年10月26日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号