Я хотел бы интегрировать поддержку экрана для моего приложения 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 применить верхнее смещение в 20 пикселей, чтобы поддержка выреза на экране была завершена.
Однако по мере того, как все больше и больше телефонов начинают использовать этот экран, обнаружение становится намного сложнее, и я не знаю, с чего начать. У кого-нибудь есть хорошая идея о том, как решить эту проблему?
Как вы можете видеть ниже, многие производители смартфонов начинают использовать вырез на экране, и хорошее приложение должно поддерживать все устройства, верно?
Телефоны с вырезом на экране:
- Серия Huawei P20
- Асус Зенфон 5 и 5Z
- Хуавей Честь 10
- Оппо R15 и R15 Pro
- Оппо Ф7
- Виво В9
- Vivo X21 и X21 UD
- OnePlus 6
- LG G7 ThinQ
- Леагоо С9
- Оукитель U18
- Sharp Aquos S3
- ...