当键盘可见时,iOS 15 Safari会检测到浮动地址栏

人气:929 发布:2022-10-16 标签: ios mobile-safari ios15

问题描述

在Safari iOS15中,默认情况下,地址栏固定在视区的底部。如iOS 15 Safari floating address bar所述,您可以使用padding-bottom: env(safe-area-inset-bottom)确保内容显示在其上方。

但是,如果键盘可见,则环境变量不起作用,因为浮动地址栏显示在键盘上方,并清除视区的底部。这可能会导致某些内容隐藏在其下方。

以下是该问题的一个简单演示:https://pmusaraj.github.io/ios15-bottom-bar2.html

在iOS 14及更低版本或iOS15上,如果Safari设置为在顶部显示地址栏,则当文本区域处于焦点位置时,您可以看到提交按钮。在默认的iOS15上,您不能,因为设备返回的视区高度不包括浮动地址栏。

更新:https://bugs.webkit.org/show_bug.cgi?id=229876

的WebKit错误报告

推荐答案

我能找到的最接近的解决方案是使用导航器检查是否存在iOS 15。用户代理:

数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">
console.log(navigator.userAgent.indexOf("iPhone OS 15") != -1)

但是,用户仍可以将设置中的选项卡栏位置更改回顶部。

下面的屏幕截图来自于在Xcode iPhone模拟器中测试它,并使用Safari中的开发工具检查浏览器

414