如何通过https加载的网页与桌面应用程序进行通信

时间:2015-02-28 17:45:42

标签: javascript ssl browser ssl-certificate desktop-application

我正在尝试制作桌面应用程序,以便从浏览器中运行的页面接收消息。桌面应用程序可以以任何方式编写,我只需要能够从浏览器与它通信。该网站是有角度的。我不关心桌面应用程序的响应或需要以任何方式与浏览器进行通信。通过https服务网站虽然引起了问题(但是要求),我想知道这些问题的好方法。

理想的解决方案是将应用程序设置为Web服务器,并将网站发布到localhost:PORT,服务器将获取请求并执行所需操作。但是,由于网站是通过https提供的,因此由于混合内容规则,它会阻止对localhost的http请求。

我尝试在页面上提交表单并让目标成为隐藏的iframe,但由于它不是https而被阻止。

我尝试将目标更改为_blank,并且“工作”但是它会打开一个带有响应的新选项卡,这在您使用网站时会非常烦人(它应该在后台) 。我设置了一个window.close响应,但窗口每次都闪烁一秒钟,这是我想避免的。

我尝试为桌面应用程序的服务器制作一个自签名证书,但是浏览器会阻止它,直到你第一次接受它为止,我不希望人们必须在他们的“https://localhost:1234”中浏览器并接受不安全。我想象本地服务器的有效证书也是不可能的。

有没有完成这个?感谢

1 个答案:

答案 0 :(得分:1)

您可以将浏览器重定向到http://localhost:PORT(例如,使用状态代码302或JS中的window.location),并将数据传递到查询字符串中的桌面应用程序。这应该在没有警告的浏览器中执行。然后你可以将一些html从桌面应用程序返回到浏览器。如果桌面应用程序的数据太大而无法在查询字符串中进行编码,则可以在查询字符串中传递url,桌面应用程序可以在其中下载数据。