是否可以使用Javascript检测客户端系统是否安装了特定的Windows应用程序?
我开发了一个网站,该网站只能检测由我们开发的应用程序。但我想让您知道,网站名称和Windows应用程序名称不同。我的意思是认为我的Web应用程序名称为X
,Windows应用程序名称为Y
与Skype webapplication
和Skype 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
和下面的代码一样
navigator.getInstalledRelatedApps().then(relatedApps => {
for (let app of relatedApps) {
console.log(app.platform);
console.log(app.url);
console.log(app.id);
}
});
任何帮助将不胜感激:-)
但是,如果您想拒绝投票这个问题,请理解我的好奇心。就像我正在为此做研发工作。
并且想让您知道,我正在使用 Angular 5
答案 0 :(得分:0)
使用 getInstalledRelatedApps()
,您可以在用户计算机上check if your Windows UWP app is installed。
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>
windows-app-web-link
文件添加到您的网络服务器上的 /.well-known/
目录来更新您的网站,以告诉它您的 Windows UWP 应用程序。[{
"packageFamilyName": "MyApp_9jmtgj1pbbz6e",
"paths": [ "*" ]
}]
{
"related_applications": [{
"platform": "windows",
"id": "MyApp_9jmtgj1pbbz6e!App",
}]
}
getInstalledRelatedApps()
以检查您的 UWP 应用是否已安装:const relatedApps = await navigator.getInstalledRelatedApps();
relatedApps.forEach((app) => {
console.log(app.id, app.platform, app.url);
});