在Windows 11的 Chrome中,navigator.getInstalledRelatedApps() 返回的是空的
好像有什么缺失,但我就是不知道是什么。因为在调用 navigator.getInstalledRelatedApps() 时,应该把已安装的网页应用列在数组里,但这个数组却是空的。
Chrome (146.0.7680.178) Windows 11控制台输出
在 https://www.swisswebcams.ch/ 上(安装了网页应用)

在网页应用中调用
if('getInstalledRelatedApps' in navigator)
navigator.getInstalledRelatedApps().then(apps => console.warn(apps));
资产链接
https://www.swisswebcams.ch/.well-known/assetlinks.json
[
{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "web",
"site": "https://www.swisswebcams.ch"
}
}
]
这对让 navigator.getInstalledRelatedApps() 能否工作真的需要吗?
清单(Manifest)
https://www.swisswebcams.ch/_new/manifest.json
{
"icons": [
{
"src": "/_new/img/og.png",
"sizes": "256x256"
}
],
"id": "/",
"display": "fullscreen",
"name": "SwissWebcams",
"protocol_handlers": [
{
"protocol": "web+swc",
"url": "/?referrer=%s"
}
],
"related_applications": [
{
"id": "https://www.swisswebcams.ch/",
"platform": "webapp",
"url": "/_new/manifest.json" // Using just "/" solved the issue
}
],
"scope": "/",
"short_name": "Webcams",
"start_url": "/?version=1.0.0",
"version": "1.0.0"
}
解决方案
getInstalledRelatedApps() 不会自动返回所有已安装的渐进式网页应用(PWA)。它只会报告通过related-apps / asset-links机制声明的应用,且只有在浏览器判断该关系有效时才会返回。
这里有几件事需要再次确认:
related_applications通常用于相关的原生/平台应用,而不是用于检测当前的PWA本身- 在
related_applications内的清单url应指向相关应用,而不是返回到同一个清单,除非确实支持该特定模式 assetlinks.json主要是数字资产链接验证的一部分,但仅凭它本身并不能保证Chrome会在此处列出已安装的网页应用- Chrome对网页应用条目在不同平台上的支持或行为可能有限且不一致
因此,数组为空并不一定意味着你的安装有问题——这可能只是意味着你的应用没有被视为此API的“相关已安装应用”。
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。