electron-windows-osk

1.0.15 • Public • Published

Electron Windows OSK

Windows on-screen keyboard manager for Electron apps.

This experimental package allows you to show, close, resize and position the built in on-screen Windows keyboard. Take a look at export.js to check out the API.

This should work in Win 7 and up.

Short example:

 
import WindowsOSK from 'electron-windows-osk';
const OSK = new WindowsOSK(browserWindowInstance);
 
// Open and position OSK on click in inputs.
document.addEventListener('click', (event) => {
    if (event.target.tagName === 'INPUT' && event.target.tagName === 'TEXTAREA') {
        const viewportOffset = event.target.getBoundingClientRect();
        const inBrowserYOffset =
            (
                viewportOffset.top - // Element top offset.
                window.scrollY       // If the page is scrolled we need to substract the scroll y.
            );
 
        OSK.showFromEvent(inBrowserYOffset, event.target.clientHeight, 5);
        // meteor-desktop: Desktop.send('virtualKeyboard', 'show', inBrowserYOffset, event.target.clientHeight, 5);
    }
});
 
// Close the OSK on any other click.
document.addEventListener('click', (event) => {
    if (event.target.tagName !== 'INPUT' && event.target.tagName !== 'TEXTAREA') {
        OSK.close();
        // meteor-desktop: Desktop.send('virtualKeyboard', 'close');
    }
});

Example of meteor-desktop module:

import WindowsOSK from 'electron-windows-osk';
 
export default class VirtualKeyboardModule {
    constructor({ log, eventsBus, Module }) {
        this.log = log;
        let virtualKeyboardModule = new Module('virtualKeyboard');
 
        eventsBus.on('windowCreated', (window) => {
            this.window = window;
            console.log(WindowsOSK);
            this.windowsOSK = new WindowsOSK(window);
        });
 
        virtualKeyboardModule.on('show', this.showKeyboard.bind(this));
        virtualKeyboardModule.on('close', this.closeKeyboard.bind(this));
 
        this.windowsOSK = null;
    }
 
    showKeyboard(event, inBrowserYOffset, height, padding) {
        this.windowsOSK.showFromEvent(inBrowserYOffset, height, padding);
    }
 
    closeKeyboard() {
        this.windowsOSK.close();
    }
};
 

Readme

Keywords

none

Package Sidebar

Install

npm i electron-windows-osk

Weekly Downloads

16

Version

1.0.15

License

MIT

Unpacked Size

10.8 MB

Total Files

61

Last publish

Collaborators

  • wojtkowiak