【发布时间】:2018-10-17 06:19:20
【问题描述】:
SFSafariViewController 有这个在 Safari 中无法重现的错误。
它通常会遮盖站点名称/完成 chrome 后面的固定面板的顶部。
发生这种情况的原因是它在内部失去了页面实际高度和缩小的页眉镶边大小之间的同步。
不错的小标题
坏的小标题(SF chrome应该很小但很大)
不错的大标题
此问题已在其他地方报告:https://meta.stackexchange.com/questions/279792/new-ios-chat-headers-occasionally-hide-behind-safari-navigation-controls-when-vi,并且是 iOS 9 及更高版本中的一个问题(在 12.0.1 中仍然是一个问题)
要重现使用 SFViewController 制作一个虚拟应用程序并导航到具有固定标题的站点,例如 bbs.boingboing.net,然后单击并浏览一些主题。
由于这个错误现在已经存在几年了,我想知道是否有某种解决方法不涉及在标题顶部添加一般填充?
最少的复制
用这个 HTML 创建一个页面
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
body {
height: 2000px;
background-color: green;
}
header {
width: 100%;
height: 50px;
background-color: red;
color: white;
position: fixed;
top: 0;
}
</style>
</head>
<body>
<header>Hello</header>
</body>
</html>
在 SafariViewController 中打开(在线托管,然后通过电子邮件发送链接,iOS 中的 gmail 应用程序使用 Safari 视图控制器,Discourse 应用程序也是如此)
快速滚动到底部
一半的标题隐藏。
insets 没有区别 inset 顶部为 0,cover viewport 属性没有区别。
【问题讨论】:
-
向 Apple 报告的问题 #45354159
-
能否提供您正在使用的网站网址(如果可能)?
-
当然,bbs.boingboing.net 可以解决问题
-
您是否有权访问要嵌入 Safari 视图的网站的前端开发人员?
-
iOS safari 是新的 IE
标签: ios iphone sfsafariviewcontroller