【发布时间】:2019-04-24 00:58:35
【问题描述】:
我想为我的 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 的顶部偏移量,这样屏幕缺口支持就完成了。
但是随着越来越多的手机开始使用此屏幕缺口,检测变得更加复杂,我不知道从哪里开始。有没有人知道如何解决这个问题?
正如您在下面看到的,许多智能手机公司开始使用屏幕缺口,一个好的应用应该支持所有设备,对吧?
带有屏幕缺口的手机:
- 华为P20系列
- 华硕 ZenFone 5 和 5Z
- 华为荣耀10
- OPPO R15 和 R15 Pro
- OPPO F7
- Vivo V9
- Vivo X21 和 X21 UD
- 一加 6
- LG G7 ThinQ
- Leagoo S9
- Oukitel U18
- 夏普 Aquos S3
- ...
【问题讨论】:
标签: javascript android ios css cordova