Как бороться с несогласованностью ширины между андроидами 4.0-4.3 и 4.4 на Кордове или Phonegap?

Я делаю приложение на Cordova 3.4 и тестирую на Moto X с Android 4.4.2, Samsung Galaxy Ace с Android 2.3 и эмулятором. Я оставляю исходное окно просмотра, созданное кли:

<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" /> 

На css я работаю с относительными размерами:

 html { font-size: 62.5%; } p { font-size: 1.4rem; } 

Эта работа прекрасна на обоих устройствах, но когда я тестировал на LG G2 с Android 4.2.2, я вижу, что текст меньше. Я протестировал его со всеми версиями Android 4.x на эмуляторе и нашел ту же проблему с версиями от 4.0 до 4.3, а затем обнаружил, что Android 4.4.2 теперь использует Chrome, а ViewPort работает не так.

Основываясь на некоторых статьях, нормальное поведение на экране сетчатки, например, экраны, состоит в том, что ширина css меньше, чем ширина устройства, и это то, как он работает на Android 4.4.2, но с 4.0 до 4.3 работает по-другому. Это сравнение некоторых свойств javascript между 4.4.2 и 4.2.2 с использованием эмулятора, настроенного с этими параметрами: экран: 4.7 ", разрешение: 720×1280, размер: нормальный, коэффициент экрана: длинный, плотность: xhdpi.

 4.4.2 - window.devicePixelRatio: 2 - screen.width: 360 - document.width: 360 - window.innerWidth: 360 - document.documentElement.clientWidth: 360 - document.documentElement.offsetWidth: 360 - document.body.clientWidth: 360 4.2.2 - window.devicePixelRatio: 2 - screen.width: 720 - document.width: 720 - window.innerWidth: 720 - document.documentElement.clientWidth: 720 - document.documentElement.offsetWidth: 720 - document.body.clientWidth: 720 

Временное решение, которое я пытаюсь использовать, использует медиа-запросы, но я думаю, что это может быть проблемой на планшетах или других устройствах.

 html { font-size: 125%; } @media all and (max-width: 400px) { html { font-size: 62.5%; } } 

Другим решением может быть проверка версии Android для установки размера шрифта html.

Каков наилучший способ борьбы с этим несоответствием между Android 4.0-4.3 и 4.4?

Solutions Collecting From Web of "Как бороться с несогласованностью ширины между андроидами 4.0-4.3 и 4.4 на Кордове или Phonegap?"

Я обнаружил проблему при работе с этим предупреждением на консоли: Viewport target-densitydpi is not supported. Поиск об этом предупреждении, я нашел в этом сообщении в блоге, что target-densitydpi устарел.

Проблема заключается в том, что атрибут target-densitydpi=device-dpi указывает target-densitydpi=device-dpi просмотра, чтобы ширина пикселя CSS была равна ширине пикселей устройства. Поскольку экран просмотра Chrome на Android 4.4.2 игнорирует этот атрибут, он масштабирует ширину пикселов CSS.

Удалив этот атрибут, я получил этот результат:

 4.2.2 - screen.width: 720 - document.width: 360 4.4.2 - screen.width: 360 - document.width: 360 

На Android 4.2.2 screen.width работает не так, как ожидалось, потому что это свойство должно возвращать ширину пикселей устройства, но это не проблема, потому что теперь мой макет выглядит одинаково на Android 4.4.2 и 4.2.2 после target-densitydpi атрибут target-densitydpi (я также удалил альтернативу медиа-запросов, опубликованную в вопросе).