Ионный конденсатор WKWebView несоответствующая высота окна просмотра

#ios #ionic-framework #wkwebview #viewport #capacitor

#iOS #ионный каркас #wkwebview #окно просмотра #конденсатор

Вопрос:

У меня возникла проблема с непоследовательностью в окне просмотра моего приложения после его закрытия / повторного открытия на iPhone 10 .

Сначала окно просмотра начинается там, где оно должно быть (в верхней части экрана с window.innerHeight = 862 пикселей), но после закрытия (не полностью) и повторного открытия приложения оно располагается ниже отметки ( window.innerHeight = 814 пикселей), что приводит к удалению всего содержимого, включая ionic-toolbar безопасные области.

Смотрите gif ниже, который сначала работает, но затем показывает неправильное поведение.

https://thumbs.gfycat.com/ValidDampKiwi-mobile.mp4

Конфигурация :

 Ionic:

   Ionic CLI                     : 6.9.3 (/usr/local/lib/node_modules/@ionic/cli)
   Ionic Framework               : @ionic/angular 5.5.0
   @angular-devkit/build-angular : 0.803.29
   @angular-devkit/schematics    : 8.1.3
   @angular/cli                  : 8.1.3
   @ionic/angular-toolkit        : 3.0.0

Capacitor:

   Capacitor CLI   : 1.5.1
   @capacitor/core : 1.5.1
   @capacitor/android : 1.5.1
   @capacitor/ios : 2.4.2 # bumped to support iOS 14


Cordova:

   Cordova CLI       : not installed
   Cordova Platforms : not available
   Cordova Plugins   : not available

Utility:

   cordova-res (update available: 0.15.2) : 0.11.0
   native-run                             : not installed

System:

   NodeJS : v12.17.0 (/usr/local/bin/node)
   npm    : 6.14.4
   OS     : macOS Catalina
   Xcode  : Xcode 12.1 Build version 12A7403
 

В чем может быть проблема? Спасибо за помощь.

Также эта проблема очень похожа на мою: https://github.com/apache/cordova-plugin-wkwebview-engine/issues/108#issuecomment-607461878

Комментарии:

1. Вам нужно использовать cordova-plugin-wkwebview ? Я совершенно уверен, что конденсатор по умолчанию использует wkwebview для своего webview.

2. Нет, я этого не делаю, но конденсатор не нужен. По умолчанию предполагается, что он полностью поддерживает wkwebview.

Ответ №1:

Я нашел решение. Я добавил в прошлом, пытаясь решить другую проблему в конденсаторе 1.x, параметр в capacitor.config.json :

 {
    ...
    ios: {
        contentInset: "always"
    }
}
 

Этот параметр упоминается здесь : https://capacitorjs.com/docs/config

Что вызвало непоследовательную ошибку, но я не могу объяснить почему…