从 Web 应用程序 - 我们如何检查我们的 Windows 桌面应用程序是不是已安装?连版本信息,我们怎么能得到呢?

Posted

技术标签:

【中文标题】从 Web 应用程序 - 我们如何检查我们的 Windows 桌面应用程序是不是已安装?连版本信息,我们怎么能得到呢?【英文标题】:From a Web Application- How can we check our windows desktop application is already installed or not? Even the version information, how we can get it?从 Web 应用程序 - 我们如何检查我们的 Windows 桌面应用程序是否已安装?连版本信息,我们怎么能得到呢? 【发布时间】:2018-01-20 03:13:09 【问题描述】:

我们有一个 Web 应用程序和一个 Windows 桌面应用程序,它们都通过 Web 套接字连接。

当我们使用网络应用程序时,我们必须检查桌面应用程序是否已安装。 如果桌面应用程序未安装(或)它是旧版本,我们需要相应地安装/更新它。

现在的挑战是,我们如何识别桌面应用程序是否已安装。

一种方法是将信息存储在浏览器缓存中。但是我们有以下问题:

用户可以清除浏览器缓存。 来自同一产品的多个URL,如果我们使用,它会有不同的浏览器缓存。

目前,我们正在使用自定义 URI 方法来启动应用程序。 (使用浏览器缓存)。

注意:我们主要针对 Chrome 和 Firefox。而且我们没有管理员权限来安装桌面应用程序。

你们能帮我们找到正确的解决方案吗?

【问题讨论】:

Web 应用程序不应该与操作系统交互。我认为您找不到解决方案,因为浏览器能够访问应用程序或任何类型的操作系统相关信息是一个高安全风险。 见w3.org/TR/2011/WD-html5-20110525/timers.html#custom-handlers 这是完全错误的,您不能使用 Web 应用程序来检查任何人的 PC 上的任何内容,如果可能的话,甚至没有人会使用浏览器。您的逻辑在这里绝对不正确,而不是让 Web 应用程序检查桌面应用程序的存在,如果桌面应用程序启动,它应该报告为已连接。当它启动时,您说它使用 Web 套接字连接 - 只需通过 Web 套接字通知您的 Web 应用程序桌面正在目标计算机上运行。这在很多层面上都是错误的,但你去吧,这就是你的解决方案。 【参考方案1】:

每当您将安装程序提供给客户端时,请让他们进行身份验证。

例如 要安装桌面应用程序,用户必须从某个地方获取它。 假设您有一个应用下载网址: www.yourdesktopapp.com/download

现在,在该网址上,您可以首先要求用户登录(获取他的用户 ID) 并且,在向他们发送安装程序文件之前, 你会保存

带有您发送给他们的文件信息的用户 ID 进入数据库。

通过这种方式,您可以或多或少地了解谁安装了桌面应用程序、安装时间以及是否需要升级。

根据您的评论快速编辑:

好吧,我不知道应用程序是关于什么的,但也许您应该在允许下载之前要求用户登录...或者在应用程序本身中添加一个身份验证步骤,以便每当用户启动应用程序,它会将应用程序版本 + 用户 ID 发送到您的服务器。

=== 或 ===

或者,您可以只为用户提供下载应用程序的选项,无论他们是否已经拥有该应用程序。如果他们有它,他们将忽略下载按钮,如果没有,他们可以下载。 至于更新应用程序,留给应用程序本身。它不是应该更新您的应用程序的网站,但应用程序应该在启动时检查更新。

例如,您可以在应用中添加一个简单的查询,以检查可用的最新版本,并将其与当前版本进行比较。 如果有更新的版本可用,请在后台下载,或将用户浏览器导航到版本更新页面。

【讨论】:

感谢您的回复。在我们的应用程序中,用户可以通过不需要任何凭据即可访问的链接加入。 “这样你可以或多或少知道谁安装了桌面应用程序”——但不知道他们安装在哪台计算机上(或者他们现在是否正在使用其中一台计算机)

以上是关于从 Web 应用程序 - 我们如何检查我们的 Windows 桌面应用程序是不是已安装?连版本信息,我们怎么能得到呢?的主要内容,如果未能解决你的问题,请参考以下文章

Scrapy 爬虫

如何检查嵌套数据的更改是不是允许

如何在 BlackBerry 5.0 及更高版本的 J2ME 代码中使用 wifi 调用 HTTP URL?

我们如何检查到目前为止从 Kafka 主题加载到数据库的记录数?

从 Web 应用程序中的 servlet 过滤器重定向到上一页

如何检查 Django 安全漏洞以及如何修复它们