Invalid app.height in PWA

Здравствуйте.

Периодически (1 раз из 50) при открытии с главного экрана установленной PWA версии, app.height оказывается меньше на высоту safe-area (скорее всего safe-area-inset-top, не записал значения, когда словлю в след.раз, запишу…), если в альбомную ориентацию и обратно, то высота становится нормальной.
Проблема точно возникает в iOS 12, в Android вроде как тоже было, но надо перепроверять, в основном тестируем iOS.

Подскажите, пожалуйста, как принудительно обновить app.height?..
Спасибо.

Можно принудительно задать в CSS:

#app {
  height: 100vh;
}

Т.к. при height:100vh; в Safari все съезжает вниз за бар, то свойства высоты добавляются в onload, сейчас используются такой вариант:

const standalone_css={'height':'100vh'};
if(app.device.standalone) {
    $$('html').css(standalone_css); 
    $$('body').css(standalone_css); 
    $$('.framework7-root').css(standalone_css);
}

Попробую заменить на предложенный вариант…
$$('#app').css(standalone_css);

Заменил на $$('#app').css({height:"100vh"}), судя по всему это аналогично тому, что у меня было в посте выше, и проблему это не решило…
Только что снова при запуске словил app.height меньше на 50px (это safe-area-inset-top).

Можно ли как-то еще принудительно обновить app.height из js?

Если ровно 50px то это не safe-area. Похоже на баг iOS. Если убрать/добавить viewport-fit = cover?

safe-area-inset-top = 50px
Судя по всему F7 неверно определяет высоту, т.к. сейчас проверил document.body.scrollHeight показывает верную высоту, а app.height на 50px меньше…

Каким образом F7 получает app.height?

причем тут что определяет f7? стилей же никаких не стоит, это определяется как window.innerHeight, что видимо неверно передает iOS

Если height: 100% не работает на html, попробуй указать height: calc(100vh + 50px) но это прям явный костыль будет)

Ну F7 же сохраняет в какой-то момент откуда-то высоту?..

Я думаю, что как раз при запуске iOS отдает неверную высоту и F7 ее сохраняет, а потом высота корректируется, потому что document.body.scrollHeight отображает верную.

Дополнено:
Не прочитал, сейчас проверю значение window.innerHeight

Да, window.innerHeight тоже отдает верную высоту, получается в момент, когда F7 ее сохраняет, у iOS она оказывается неверной.

Дополнено:
Закинул в onload alert(app.height+’/’+window.innerHeight) и оба значения показывают неверную высоту (экран при этом белый).
Судя по всему уже потом высота выравнивается.

Можно ли потом принудительно прописать app.height=window.innerHeight?

Можно но это никак не повлияет ни на что