ich auch nee habe Ded um dies zu implementieren. Ich habe es getan und es funktioniert perfekt.
1. Sie müssen Cordova Plugins Tastatur verwenden, und beim Start cordova.plugins.Keyboard.disableScroll(true);
anrufen, so dass die Tastatur Ihre Ansicht nicht schieben wird. 2. Sie auf keyboardshow und Tastatur verstecken Veranstaltungen wie diese mit den Handler hören:
cordova.plugins.Keyboard.disableScroll(true);
window.addEventListener('native.keyboardshow', this.dispatchMe);
window.addEventListener('native.keyboardhide', this.dispatchMeHide);
dispatchMe(e) {
var event = new CustomEvent('keyboardShown');
event['keyboardHeight'] = e.keyboardHeight;
document.dispatchEvent(event);
}
dispatchMeHide() {
var event = new CustomEvent('keyboardShown');
event['closed'] = true;
document.dispatchEvent(event);
}
als Sie eine beobachtbare von Veranstaltung wie diese machen kann:
this.keyboardObservable = Observable.fromEvent(document, 'keyboardShown');
als Sie das hören beobachtbar. Wenn die Tastatur geöffnet ist, ändern Sie die Höhe des Containers, in dem Ihre Nachrichten angezeigt werden. Sie müssen es im Grunde für die Höhe der Tastatur niedriger machen. Hier ist, wie ich tat,
this.chatService.keyboardObservable
.subscribe(data => {
if (data.closed) {
this.sectionHeight = 85 + '%';
this.inputBottom = 0 + '%';
}
else {
this.docHeight = document.body.clientHeight;
this.sectionHeight = ((this.docHeight - data.keyboardHeight - (document.getElementById('toptoolbar').clientHeight + document.getElementById('inputchat').clientHeight))/this.docHeight) * 100 + '%';
this.inputBottom = data.keyboardHeight/this.docHeight * 100 + '%';
}
});
und Sie diese Eigenschaften mit ngstyle ändern wie diese
[ngStyle]="{'height': sectionHeight}"
ich dies auch für chatapp gebraucht, und jetzt funktioniert es perfekt (auch wenn Sie den Bildschirm Porträt drehen/Querformat-Modus), der Eingang schwebt immer über der Tastatur, genau wie in den nativen Apps :)
Ich hoffe, das wird Ihnen helfen!
Das funktionierte für mich wie ein Zauber! Danke – user3153278
Das hat mich verrückt gemacht. Große, einfache Lösung. – Matt
Antwort funktionierte wie ein Charme, hatte Probleme mit Plugins etc .. Gute Arbeit! – JoeriShoeby