Read the statement by Michael Teeuw here.
Keyboard
-
@pana507 @sdetweil So, yay I got it working!
Guess I’ll need to write some kind of tutorial, not too easy but here a few first steps:- Install “simple-keyboard” in your module via npm
- Bind it into the JS
getStyles: function () { return [ this.file('node_modules/simple-keyboard/build/css/index.css') ]; }, getScripts: function () { return [ this.file('node_modules/simple-keyboard/build/index.js') ]; },
- Create a div in your DOM building function. Something like that:
const kb = document.createElement("div"); kb.className = "simple-keyboard"; container.appendChild(kb);
The class is important!
Then, AFTER the DOM element is created, you can create the keyboard class. I did this as soon as a text field was clicked on. With this method I can make sure that the DOM is created already:
input.addEventListener("focus", event => { if (!this.keyboard) { var Keyboard = window.SimpleKeyboard.default; this.keyboard = new Keyboard({ onChange: input => this.onChange(input), onKeyPress: button => this.onKeyPress(button) }); } this.keyboard.keyboardDOM.classList.add("show-keyboard"); });
I guess this can be shortened but I keep the running system for now.
You can see there are a lot of other functions (this.onChange, this.onKeyPress…)
Basically they are designed to hide the keyboard if I klick anywhere else and show it if I click on the input field. I have the concept from here:
https://franciscohodge.com/projects/simple-keyboard/demos/show-hide-demo/
Simple-keyboard is well documented for npm including lots of sample code, so with a bit of knowledge you’ll find your way around eventually.Still need to test it on the raspi itself and for all it’s function.
-
@pana507 you can also add the npm for virtual keyboard and add it to your module
https://www.npmjs.com/package/virtual-keyboardthere are others
do google searchnode js virtual keyboard
thanks for sharing man i was also planning to add the npm for the keyboard
-
Then, AFTER the DOM element is created, you can create the keyboard class. I did this as soon as a text field was clicked on. With this method I can make sure that the DOM is created already:
I know it’s 2 years later, but that is what the MM notification DOM-OBJECTS-CREATED means… .