android - Varför utlöses inte Ionic-tangentbords-händelserna?
Jag försöker köra lite kod när tangentbordet dyker upp och när det försvinner. Jag har placerat det i huvudkomponenten MyAppComponent eftersom jag vill att koden ska köras på vilken app-sida som helst, men av någon anledning fungerar inga av tangentbords-händelserna. Vad gör jag fel?
...
import { Keyboard, Platform } from 'ionic-angular';
export class MyAppComponent {
constructor(public platform: Platform, public keyboard: Keyboard) {
this.platform.ready().then(() => {
this.keyboard.didShow.subscribe(() => {
// This is never executed...
console.log('Keyboard is now open');
});
});
}
}
Jag har försökt använda onKeyboardShow från ionic-native, men det körde inte heller sin kod.
...
import { Platform } from 'ionic-angular';
import { Keyboard } from '@ionic-native/keyboard';
export class MyAppComponent {
constructor(public platform: Platform, public keyboard: Keyboard) {
this.platform.ready().then(() => {
this.keyboard.onKeyboardShow().subscribe(() => {
// This is never executed...
console.log('Keyboard is now open');
});
});
}
}
Ionic informationsdump:
cli packages: (/usr/lib/node_modules)
@ionic/cli-utils : 1.19.2
ionic (Ionic CLI) : 3.20.0
global packages:
cordova (Cordova CLI) : 8.0.0
local packages:
@ionic/app-scripts : 3.1.8
Cordova Platforms : android 7.0.0
Ionic Framework : ionic-angular 3.9.2
System:
Android SDK Tools : 26.1.1
Node : v9.11.1
npm : 5.8.0
OS : Linux 4.13
cordova-plugin-ionic-keyboard-plugin (version 2.0.5) är installerad, tillagd i appModule och finns i config.xml
Jag testar appen på en Samsung Galaxy S6 med Android 7.0, den använder standardtangentbordet från Samsung.
Svar #1
Du kan använda tangentbords-händelser som nedan;
window.addEventListener('keyboardWillShow', (e) => {});
window.addEventListener('keyboardWillHide', () => {});
window.addEventListener('keyboardDidShow', (e) => {});
window.addEventListener('keyboardDidHide', () => {});
Svar #2
För Ionic 4 Keyboard Native Plugin försök använda addEventListener
window.addEventListener('keyboardWillShow', () => {
console.log("Keyboard will Show");
});
window.addEventListener('keyboardDidShow', () => {
console.log("Keyboard is Shown");
});
window.addEventListener('keyboardWillHide', () => {
console.log("Keyboard will Hide");
});
window.addEventListener('keyboardDidHide', () => {
console.log("Keyboard is Hidden");
});
Kolla hela handledningskoden här
