web-dev-qa-db-fra.com

Problème de défilement avec ios12, xcode10, cordova 7.1, cordova-ios 4.5.4 lors de la fermeture du clavier

J'ai construit une application Cordova pour iOS avec Framework7 v2.3.1 en utilisant:

Cela fonctionne parfaitement, mais il y a quelques jours, j'ai compilé l'application Cordova pour iOS avec Xcode 10. Sur l'appareil iOS 12, si l'application est compilée avec Xcode 10, lorsque je sélectionne un champ de saisie, le clavier apparaît et la vue défile vers le haut, mais lorsque le clavier se ferme, la vue ne défile pas, l’espace vide du clavier reste. Le problème ne se pose pas si je compile l'application avec Xcode 9.4 et que je l'installe sur un appareil doté d'iOS 12, ou si l'application est compilée avec Xcode 10 et installée sur un appareil doté d'iOS 11.x capture d'écran pour mieux expliquer le problème Quelqu'un at-il une solution? Merci

 Steps to explain the problem on keyboard closing

7
ciossi

Utilisez ce plugin https://www.npmjs.com/package/cordova-plugin-keyboard#keyboarddidhide

ou "plugin cordova ajouter cordova-plugin-keyboard"

Ensuite, ajoutez simplement ceci sur deviceReady:

Keyboard.automaticScrollToTopOnHiding = true;

Cela fonctionne pour moi dans ios12

2
doru

Je le répare par une méthode délicate, vous devriez essayer:

- (void)keybordDidHide {
    if (!CGPointEqualToPoint(self.lastContentOffset, self.webView.scrollView.contentOffset)) {
        [self.webView.scrollView setContentOffset:self.lastContentOffset];
        [self.webView.scrollView setContentInset:UIEdgeInsetsMake(0, 0, 0, 0)];
    }
}

- (void)keybordWillShow {
    self.lastContentOffset = self.webView.scrollView.contentOffset;
}
1
Ethan Hou