【问题标题】:iOS PWA location access prompt not showingiOS PWA 位置访问提示不显示
【发布时间】:2023-01-09 03:51:57
【问题描述】:

我构建了一个调用 javascript API navigator.geolocation.getCurrentPosition 的 PWA,当 Safari 权限设置为询问时,它会提示用户进行位置访问。 这是正确的行为,并且在 Safari 中打开时按预期工作。

但是,当添加到主屏幕并以“独立”显示模式运行时,位置警报不会在我的手机(iPhone 13 mini / iOS 15.1.1)上打开。而且通话永远不会超时。 然后,如果我从 PWA 切换到 Safari,位置警报/提示会突然显示在 Safari 中。因此,警报似乎针对错误的“选项卡”。 如果 PWA 显示模式是“浏览器”或“mimimal-ui”,并且其中任何一个都正常运行,则不会发生这种情况。

我只能在我的手机上复制这个(iPhone 13 mini / iOS 15.1.1)。我还在各种旧手机(15.1.1 和 14.7)以及几个模拟器上进行了测试,它们的行为都符合预期。 这可能是我手机上的一个模糊设置,但它确实感觉很像 iOS Safari 错误。

【问题讨论】:

  • 请提供足够的代码,以便其他人可以更好地理解或重现问题。
  • 你找到解决办法了吗?同样的问题在这里...
  • 我面临同样的问题。你找到任何解决方案了吗? @瑞安

标签: javascript ios iphone safari progressive-web-apps


【解决方案1】:

我在 iOS 15.5 中使用 iPad 时也遇到了这个问题。我的应用程序是一个在添加到主屏幕的 Safari 移动设备上运行的 Web 应用程序。在显示standalonefullscreen 时会发生完全相同的情况,而不是在minimal-uibrowser:当网站需要位置许可或Location Services -> Safari Webistes 处于“下次询问”时,提示将首次显示或当我分享”。 “使用应用程序时”工作正常。

为了克服这个问题,我racenavigator.geolocation.getCurrentPositionsetTimeoutPositionOptions.timeout长一点。如果后者赢得比赛,则意味着我们检测到这种情况,我可以在那里抛出一些自定义错误,以告知用户发生了什么以及应该做什么(手动更改Location Services -> Safari Webistes)。

【讨论】:

    【解决方案2】:

    我想我知道你为什么会收到那个错误 我发现您必须使用 HTTPS 连接才能使 safari 不会阻止您向 safari 应用程序请求获得您提到的权限,所以我想您应该在服务器的功能分支上测试您的理论

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-11
      • 1970-01-01
      • 2015-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-21
      相关资源
      最近更新 更多