KaiOS runs on many different kinds of feature phones, each with their own behaviours. This page will list different behaviours between devices, in regards to creating apps.
Button Behaviour
See also: Buttons
Backspace
On most devices, this button is the End Call button. This button will return Backspace when listening to the keydown/keyup event. Pressing this key will minimize or close the currently active app, depending on the device. Holding this key will force close the current app.
However, some devices have a dedicated Back Button. In this case, that key will return Backspace. The End Call button on these devices will instead return EndCall. Do not preventDefault() this key!!! preventDefault()ing this key will disable the force close function of KaiOS, making it impossible to exit your app quickly. An exception to this is to show a message to confirm if the user actually wants to exit.
Status Bar
See also: Status Bar: Appearance Between Devices
overlapped status bar and window.open()
Calling window.open() in an app with an overlapped status bar will not show the controls for the browser on some devices (Back, Volume, etc). You may have to add your own display for the controls.
White Status Bar Bug
On some devices, the status bar may appear completely white, making it impossible to see the icons. To fix this, add the following line to the index of your app:
<meta name="theme-color" content="#000000" />where content is any color other than white. It is only necessary to add this to the index of your app, as the color will carry over to the other pages.
Framerates
requestAnimationFrame() is used for games and animations. Most devices keep a framerate of 30fps, however there are some exceptions.
- Alcatel Go Flip 2 - 60fps (This is an estimate - the framerate on this device is very unstable)
- Alcatel Go Flip 3 - 25fps
Media
See Media: Changing the Volume
Sharing
Some devices do not have an E-mail client. Please keep this in mind when using mailto: links or e-mail mozActivitys.
Fullscreen
On some devices, pressing the soft keys will exit fullscreen.
Closing and Minimizing
Backspace will minimize the app by default, however on low-end devices, the app will most likely be killed instead.