You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mohemm_moe/Mohem/src/app/hmg-common/services/keyboard/keyboard.service.ts

57 lines
1.4 KiB
TypeScript

import { Injectable, AfterViewInit } from "@angular/core";
import { Events, Platform } from "@ionic/angular";
import { CommonService } from "../common/common.service";
import { Keyboard } from "@ionic-native/keyboard/ngx";
import { KeyboardStatusModel } from "./keyboard-status.model";
@Injectable({
providedIn: "root"
})
export class KeyboardService {
public static KEYBOARD_STATUS = "keyboard-status-event";
public static keyboardOpened = false;
public static isOpened() {
return KeyboardService.keyboardOpened;
}
constructor(
public events: Events,
public cs: CommonService,
public keyboard: Keyboard,
public platform: Platform
) {}
public watchKeyboard() {
this.platform.ready().then(() => {
window.addEventListener('keyboardDidHide', () => {
this.publishEvent(false);
});
window.addEventListener('keyboardDidShow', () => {
this.publishEvent(true);
});
/*
this.keyboard.onKeyboardHide().subscribe( (observer) => {
});
this.keyboard.onKeyboardHide().subscribe(() => {
this.publishEvent(false);
});
this.keyboard.onKeyboardShow().subscribe(() => {
this.publishEvent(true);
});
*/
});
}
private publishEvent(opened: boolean) {
KeyboardService.keyboardOpened = opened;
this.events.publish(
KeyboardService.KEYBOARD_STATUS,
new KeyboardStatusModel(opened)
);
}
}