You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Win11系统Chrome浏览器中navigator.getInstalledRelatedApps()返回空数组问题求助

关于navigator.getInstalledRelatedApps()返回空数组的问题解答

1. .well-known/assetlinks.json是否是必要配置?

对于同域名已安装Web App的检测场景assetlinks.json并不是必需的。这个文件主要用于关联Web App和原生App(比如Android应用),实现跨应用的权限验证或跳转逻辑。你的场景只需要正确配置Web App Manifest即可满足接口需求。

2. 问题根源:Manifest中related_applicationsurl字段配置不匹配

你遇到的空数组问题,核心原因是related_applications里的url字段指向了具体的Manifest文件路径(/_new/manifest.json),而Chrome在匹配已安装Web App时,要求这个url指向Web App的作用域根路径(也就是你Manifest里scope字段设置的/)。

当你把url改成"/"后,Chrome就能正确匹配到已安装的Web App——因为这个路径和Web App的安装作用域完全一致,接口自然就能返回对应的应用条目了。

3. 正确的Manifest配置建议

针对你的场景,related_applications的正确配置需要满足以下几点:

  • platform固定设为"webapp"
  • idurl都要和Manifest里的scope字段值保持一致(你的场景就是"/"
  • id必须和安装Web App时使用的Manifest中的id完全匹配(你的Manifest里id"/",这里要对应)

调整后的related_applications段示例:

"related_applications": [
  {
    "id": "/",
    "platform": "webapp",
    "url": "/"
  }
]

另外补充几个验证要点:

  • 确保Web App是通过Chrome的「安装应用」正式流程安装的,而非单纯收藏书签
  • 确认Manifest的start_urlscope等字段无配置错误,避免安装后的应用作用域不匹配
  • 执行接口时,要在Web App的作用域内页面(即https://www.swisswebcams.ch/及其子路径)操作,跨域或超出作用域会导致接口返回空数组

内容的提问来源于stack exchange,提问作者Simon Ferndriger

火山引擎 最新活动