Fixes #5831. Cherry-pick of #5915. iOS 15 has a significant crashing bug whereby use of a canvas element completely crashes the browser in some contexts. In particular, we have observed this when using a WKWebView in a keyboard extension without 'Allow Full Access' switched on. Keyman uses canvas element to draw a nice looking key preview (key tip) on iPhones. This is a critical issue for Keyman for iPhone. Keyman for iPad is not affected because the iPad version does not use key previews. The resolution here is to remove use of the canvas drawing for key tips and use a simplified pure HTML/CSS shape. I have not conditioned this fix on platform; I have currently opted to apply this to all platforms. This issue will be reported to Apple for resolution. The issue applies so far to iOS 15.0, 15.1. |
||
|---|---|---|
| .. | ||
| bulk_rendering | ||
| samples | ||
| source | ||
| testing | ||
| tools | ||
| unit_tests | ||
| .gitattributes | ||
| .gitignore | ||
| history.md | ||
| index.html | ||
| LICENSE | ||
| NOTICE | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
Keyman Web
The Original Code is (C) 2017-2018 SIL International
Minimum Web Compilation Requirements
- Java 7+ (required by the Google Closure Compiler)
- This can be ignored for Keyman Developer builds.
- A local installation of Node.js v8.9+.
-
Builds will call
npm installto automatically install further necessary build dependencies. -
Linux users can run the following to update to LTS version of nodejs
-
sudo apt-get install python-software-properties
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install nodejs
The following folders contain the distribution for KeymanWeb:
source Source code
sources/resources/osk OSK resources for inclusion in mobile app builds;
keymanweb-osk.ttf is maintained at https://github.com/silnrsi/font-keymanweb-osk
unit_tests Automated testing resources
intermediate Intermediate compiled code; TypeScript source is compiled here before it is minified.
release/web Fully-compiled KeymanWeb modules for testing
release/embedded Fully-compiled KMEA/KMEI modules for inclusion in mobile app builds
release/unminified/web Fully-compiled but non-minified KeymanWeb modules
release/unminified/embedded Fully-compiled KMEA/KMEI modules for inclusion in mobile app builds
samples Sample pages demonstrating ways to link with KeymanWeb
testing Test-case web-pages for various aspects of KeymanWeb functionality
unit_tests A Node-driven test suite for automated testing of KeymanWeb
Usage
Open index.html or samples/index.html in your browser. Be sure to compile KeymanWeb before viewing the pages.
Refer to the samples for usage details.
To view pages using compiled KeymanWeb,
- cd to keyman/web/source
- Run
./build.sh
build.sh options:
-ui- to compile desktop user interface modules to output folder
-test- to compile for testing without copying resources or updating the saved version number.
-embed- to compile only the KMEA/KMEI embedded engine.
-web- to compile only the KeymanWeb engine.
-debug_embedded- to compile a readable version of the embedded KMEA/KMEI code
-no_minify- to disable the minified '/release/web' and '/release/embedded' build sections.
- the '/release/unminified/web' and '/release/unminified/embedded' folders will still be built.
-clean- to erase pre-existing build products before the build.
If more than one target is specified, the last one will take precedence.
Unit Testing
Before running unit tests on KeymanWeb, first run ./build.sh according to the instructions above.
Once the build is complete, running npm test will run the unit testing suite on your local machine in-browser. Alternatively, see unit_tests/test.sh, which the former command executes.