【问题标题】:How to check whether specific software is installed or not using javascript in client system?如何在客户端系统中使用 javascript 检查是否安装了特定软件?
【发布时间】:2019-01-16 17:18:40
【问题描述】:

是否可以使用 Javascript 检测客户端系统是否安装了特定的 Windows 应用程序?

我开发了一个网站,它必须检测仅由我们开发的应用程序。但我想让你知道,网站名称和 Windows 应用程序名称是不同的。我的意思是考虑我的 Web 应用程序名称是 X 而 Windows 应用程序名称是 YSkype webapplicationSkype windows application 不同

以 Skype 为例,它具有 Web 应用程序和 Windows 应用程序。和 Skype 检测 Windows 应用程序安装一样,我是否也可以检测安装或未使用 Javascript 的软件。

我已经解决了一些 StackOverflow 问题

Get installed applications in a system

Check if the application is already installed

还有一些在线文章

https://developers.google.com/web/updates/2017/04/getinstalledrelatedapps

https://www.codeproject.com/Questions/392194/How-can-I-check-if-a-program-is-installed-on-clien

https://social.msdn.microsoft.com/Forums/ie/en-US/1ae2d1f8-ac4a-4905-8bfd-705218b864e2/check-installed-application-using-javascript?forum=ieextensiondevelopment

和下面的代码一样

navigator.getInstalledRelatedApps().then(relatedApps => {
  for (let app of relatedApps) {
    console.log(app.platform);
    console.log(app.url);
    console.log(app.id);
  }
});

想让你知道,我正在使用 Angular 5

【问题讨论】:

  • 简单的答案 - 没有。
  • @Archer 谢谢你的回答 ;-)。我可以使用任何其他编程语言来代替 javascript 来检测。考虑google maps,当我们打开我们的应用程序时,它会要求This website is trying to access your current location,这样我们可以像This website is tyring to access your system installed softwares那样做
  • @Martin 感谢您的回复,但这会检测到客户端的软件而不是安装的软件
  • 如果您想在浏览器中执行此操作,请不要这样做。他们没有那种级别的操作系统访问权限,否则浏览器可能是最危险的可用软件!

标签: javascript angular windows typescript operating-system


【解决方案1】:

使用getInstalledRelatedApps(),您可以在用户计算机上使用check if your Windows UWP app is installed

  1. 更新您的 Windows UWP 应用以告诉它您的网站,这涉及更新 Package.appxmanifest 文件。
<Applications>
  <Application Id="App" ... >
      ...
      <Extensions>
         <uap3:Extension Category="windows.appUriHandler">
          <uap3:AppUriHandler>
            <uap3:Host Name="example.com" />
          </uap3:AppUriHandler>
        </uap3:Extension>
      </Extensions>
  </Application>
</Applications>
  1. 通过将windows-app-web-link 文件添加到您的网络服务器上的/.well-known/ 目录来更新您的网站以告诉它您的Windows UWP 应用程序。
[{
  "packageFamilyName": "MyApp_9jmtgj1pbbz6e",
  "paths": [ "*" ]
}]
  1. 使用 Windows UWP 应用的详细信息更新您网站上的 Web 应用清单。
{
  "related_applications": [{
    "platform": "windows",
    "id": "MyApp_9jmtgj1pbbz6e!App",
  }]
}
  1. 致电getInstalledRelatedApps() 以检查您的UWP 应用是否已安装:
const relatedApps = await navigator.getInstalledRelatedApps();
relatedApps.forEach((app) => {
  console.log(app.id, app.platform, app.url);
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-04
    • 2021-01-04
    • 1970-01-01
    相关资源
    最近更新 更多