keyman icon indicating copy to clipboard operation
keyman copied to clipboard

feat(ios): Support for Bluetooth / external keyboard in Keyman for iPhone and iPad

Open MakaraSok opened this issue 3 years ago • 19 comments

Describe the bug

Keyman stable doesn't output the expected characters of the keyboard selected off of the keyboard menu both in-app and as a system keyboard. See the screen recording below.

https://user-images.githubusercontent.com/28331388/173553424-3e819a6d-4ac2-4efa-ad5e-7ce755a06022.mov

This behavior doesn't occur in Android.


Keyman for iPhone/iPad/Android:

  • Device: iPad mini 6
  • OS: iOS 15.5
  • Keyman version: 14.0.288-stable
  • Target application: Keyman and Notes

MakaraSok avatar Jun 14 '22 10:06 MakaraSok

Sadly, this is due to a system limitation. 3rd party keyboards on Apple devices are not allowed to receive physical keystroke events. While we could do this in-app, this would create an expectation for users that we would be unable to fill.

So, until Apple changes that policy... it's out of our hands.

jahorton avatar Jun 15 '22 02:06 jahorton

While we could do this in-app, this would create an expectation for users that we would be unable to fill.

I think there would be value in this, particularly for 3rd party apps that embed a Keyman keyboard such as the App Builders. Something to consider. Then if and when Apple get their act together, it's hopefully a small step to enable it for the system keyboard too.

mcdurdin avatar Jun 15 '22 02:06 mcdurdin

See also #1018, #6071.

mcdurdin avatar Jun 15 '22 02:06 mcdurdin

please check this article https://developer.apple.com/documentation/uikit/mac_catalyst/handling_key_presses_made_on_a_physical_keyboard

https://developer.apple.com/forums/thread/18122

below is a comment in the above thread. I have not verified the claim.

No I don't, but I recently was told that GBoard and SwiftKey can be used with iPad Pro Smart Keyboard. I don't own an iPad Pro so I couldn't test it. However, I did test with my iPad Air with Apple Bluetooth Keyboard and it doesn't work. I have been search the web for this and no luck for now... If anyone knows this, please kindly reply.

MayuraVerma avatar Jun 15 '22 12:06 MayuraVerma

That's a very old thread that I've seen before -- the claim isn't correct as far as I know.

mcdurdin avatar Jun 15 '22 18:06 mcdurdin

I should have checked the dates before commenting!

I myself had verified, that hardware keyboards do not work with iPad Pro in Dec 2021 in #6071

MayuraVerma avatar Jun 15 '22 18:06 MayuraVerma

Moving to Future milestone as I suggest we implement in-app support.

mcdurdin avatar Nov 20 '22 19:11 mcdurdin

https://community.software.sil.org/t/keyman-not-working-with-new-magic-keyboard-for-ipad-pro-2024/8781/2

mcdurdin avatar May 29 '24 03:05 mcdurdin

One more user who encounters this issue: https://community.software.sil.org/t/i-have-installed-the-keyman-app-for-ipad-however-while-using-my-bluetooth-keyboard-it-doesn-t-render-indic/9081/1

Meng-Heng avatar Aug 28 '24 03:08 Meng-Heng

image

Meng-Heng avatar Sep 16 '24 03:09 Meng-Heng

Hello @mcdurdin, is it possible to prioritize this issue? I got a feedback from a user saying they need to use our Khmer keyboard which is not possible on iPad with external keyboard.

Nnyny avatar Oct 08 '24 05:10 Nnyny

This is not possible. It needs functionality from Apple. Please ask them to open a feature request with Apple, and reference this issue.

mcdurdin avatar Oct 08 '24 06:10 mcdurdin

Noted!

Nnyny avatar Oct 08 '24 06:10 Nnyny

@mcdurdin, I got a suggestion from Bong @MakaraSok.

Most users don't know that this issue is happening because of Apple limitation. So can we create a notification to let users know about this when they try to use Keyman with external keyboard on iPad and request them to open a feature request with Apple? That would also urge Apple to fix this when they have a lot of pull requests.

Nnyny avatar Oct 09 '24 04:10 Nnyny

The trick here is we don't know that the user is typing on the external keyboard! It could be possible within the Keyman app to check for external keyboard, and show a popup message there?

mcdurdin avatar Oct 09 '24 04:10 mcdurdin

Yes, it would be great if we can do that.

Nnyny avatar Oct 09 '24 04:10 Nnyny

Some if not many are using tablet as a computer replacement (at times, if not all the time), hence the only keyboard they have to use as opposed to the uncomfortable onscreen keyboard layout is the the magic keyboard or a third party keyboard. As of now, neither of these keyboards output the desired characters in their language. Each key press emits latin character which seems to be a glitch in Keyman.

This happens to a user who has just bought an M4 iPad Pro only to find out that it cannot be typed using a keyboard he is familiar with. The Khmer keyboard comes with iPadOS is of a different layout.

MakaraSok avatar Oct 10 '24 09:10 MakaraSok

https://feedbackassistant.apple.com/feedback/15449265

MakaraSok avatar Oct 14 '24 07:10 MakaraSok

OK, so plan here:

  1. See if we can detect external keyboard attached to iPad/iPhone when the Keyman app first opens, and show a banner about the limitation -- touching the banner would take users to a landing page on keyman.com with more detail.
  2. Implement hardware keyboard support in-app, which (a) lets us address any hardware keyboard compat issues w.r.t keystroke processing, and (b) allows users to use their hardware keyboard inside the keyman app and any other apps that may embed keyboards (in particular, app builder apps)

Targeting 19.0.

mcdurdin avatar Oct 16 '24 06:10 mcdurdin

✉ Tamil Old typewriter does not work with a physical keyboard (10304#2)

Meng-Heng avatar Jun 19 '25 07:06 Meng-Heng