C# 与浏览器上运行的Javascript共享程序变量值
我正在开发一个C#windows窗体应用程序,它可以在客户端PC上扫描护照 在同一台客户端PC中,用户将打开一个带有一些文本框的网页 有没有办法与浏览器页面共享windows窗体应用程序的某些值 (是否可以通过浏览器JavaScript的RPC调用Windows App中的某些函数,或者共享或发送这些值的任何机制)C# 与浏览器上运行的Javascript共享程序变量值,c#,javascript,C#,Javascript,我正在开发一个C#windows窗体应用程序,它可以在客户端PC上扫描护照 在同一台客户端PC中,用户将打开一个带有一些文本框的网页 有没有办法与浏览器页面共享windows窗体应用程序的某些值 (是否可以通过浏览器JavaScript的RPC调用Windows App中的某些函数,或者共享或发送这些值的任何机制) .您需要在C#app中实现一个小型的http服务器,该服务器可以响应http请求。然后,您的网页可以向相应的URL发出GET请求,以获取数据以填充字段。您可以将web服务器用作可相互
.您需要在C#app中实现一个小型的
http
服务器,该服务器可以响应http请求。然后,您的网页可以向相应的URL发出GET
请求,以获取数据以填充字段。您可以将web服务器用作可相互访问的资源。c#应用程序可以向服务器发送数据,web浏览器可以使用AJAX轮询/侦听来自web服务器的更新。如果Windows应用程序也连接到服务器,它可能会从网页接收更新
或者,如果您想在Windows应用程序和网站之间一次性共享数据,您可以:
- 在Windows应用程序中收集数据
- 将其发送到服务器
- 接收唯一的ID
- 使用查询字符串中的唯一ID启动web浏览器
- 网站查找Windows应用程序刚刚发送的数据
当然,还有其他方法可以做到这一点。我的目标是避免需要了解正在使用的web浏览器,例如需要下载插件以促进浏览器和Windows应用程序之间的通信。您可以使用querystring发送您的值,如果它是你的网页。如果需要支持多个浏览器并且有大量数据,那么+1是一种合理的方法。确保使用一些非标准端口(以避免与80/443发生冲突),并阅读跨站点脚本/“同源策略”,以了解如何在域(页面和本地主机)之间获取数据。另外,可能还需要将某种会话Id发送到浏览器的页面(Michal Klouda建议的查询字符串是一个选项)。