我想为我的cordova应用程序集成屏幕缺口支持。
但是,几个月前,iPhone X是唯一具有屏幕缺口的智能手机,因此检测和解决方案非常容易:
(function(){
// Really basic check for the ios platform
// https://stackoverflow.com/questions/9038625/detect-if-device-is-ios
var iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
// Get the device pixel ratio
var ratio = window.devicePixelRatio || 1;
// Define the users device screen dimensions
var screen = {
width : window.screen.width * ratio,
height : window.screen.height * ratio
};
// iPhone X Detection
if (iOS && screen.width == 1125 && screen.height === 2436) {
alert('iPhoneX Detected!');
}
})();
然后,我可以使用javascript将顶部偏移量设置为20px,以便完整地支持屏幕缺口。
但是随着越来越多的手机开始使用此屏幕缺口,的检测变得更加复杂,我不知道从哪里开始。有谁知道如何解决这个问题?
正如您在下面看到的那样,许多智能手机公司开始使用屏幕缺口,一个好的应用程序应该支持所有设备,对吗?
带有屏幕缺口的电话:
最佳答案
支持所有陷波设备的最佳选择是使用CSS“安全区域”,而不是尝试保留所有带有陷波的设备的目录并应用您的逻辑。
教程:
https://blog.phonegap.com/displaying-a-phonegap-app-correctly-on-the-iphone-x-c4a85664c493
[更新]:尽管根据MDN:https://developer.mozilla.org/en-US/docs/Web/CSS/env支持,但这在Android设备上不起作用