Mac Catalyst WKWebView keyDown never trigger (no more keyboard events)

Everything was working fine for 4 years.

But since Ventura, when the WKWebView is in focus, the keyDown event are not happening. Not only they don't fire inside of web page input box, but they won't register in the app either.

As long as a WKWebView is in focus, the keyboard events won't work. The app does not receive the key events, and the web page will not receive the js events keyDown and friends. This is particularly painful with auto complete input box.

Test with an empty project with only a WKWebView with this page https://www.toptal.com/developers/keycode/for/d

It does work fine on iPhone and iPad.

Message to Apple : You force us to use your Safari engine, yet it is always broken. Don't wait for 8 months to fix it this time, we would be tempted to go full web and skip native app with all the store certification problems.

Post not yet marked as solved Up vote post of ShaddamIV Down vote post of ShaddamIV
1.8k views

Replies

@ShaddamIV did you test your app under both x86_64 and arm64 macOS ?

I have something quite similar but it works on x86_64 (and on arm64 when using Rosetta with a x86_64 binary). However this is working on other, simpler, application so I'm not yet sure this is the same issue as you have.

I found another problem that is caused by the lack on onKeyDown working on Mac Intel.

Tab key is not working, so you can't jump to next input box by pressing Tab key.

You can test with this page. Put the cursor in the first input box and press tab. It works everywhere on the planet, but it won't work on a WKWebview on a MacOS Ventura running on Intel. https://www.w3schools.com/html/html_forms.asp

Any updates on this? :"(

Is there a workaround in the meantime? I have an app with many input fields. Working without TAB is an imposition. No key events are recognised.

Same issue. This is terrible. :(

Same problem with catalyst! webview!!! does not detect keydown in js!

MacOS Catalyst apps using a web view are useless without this.