我发现如果我使用WKWebView
viewport-fit=cover
和
body :{height:100%}
html主体的高度仍然无法到达iPhone X的底部并且等于safeArea的高度,但是背景颜色可以覆盖全屏.
https://ue.qzone.qq.com/touch/proj-qzone-app/test.html
我在全屏WKWebView中加载此页面以重现问题.
解决方法
我能够解决(ObjC / Swift)的问题:
if (@available(iOS 11.0,*)) { webView.scrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; }
要么
if #available(iOS 11.0,*) { webView.scrollView.contentInsetAdjustmentBehavior = .never; }
此设置似乎与viewport-fit = cover具有相同的效果,因此如果您知道您的内容正在使用该属性,则可以通过这种方式修复错误.
env(safe-area-inset-top)CSS声明仍然按预期工作. WKWebView会自动检测其视口何时与被阻挡区域相交并相应地设置值.
contentInsetAdjustmentBehavior和its parameter values和kudos to @dpogue的文档,以找到我找到解决方案的答案.