Open AlexWellsHS opened 8 years ago
@AlexWellsHS
This behavior is expected. Core#keyboard_visible?
uses the Calabash iOS Server to check for the keyboard and DeviceAgent#keyboard_visible?
uses the DeviceAgent to check for the keyboard. This is analogous to the difference between Core#keyboard_visibile?
and uia_keyboard_visible
?
It is possible for us to update Core#keyboard_visible?
to check for a Remote Keyboard (technically this is what a SafariViewController keyboard is), but there are some performance considerations - the LPServer is fast, but the DeviceAgent is a bit slow and unstable on some views.
I am keeping this issue open because we actively investigating whether it is possible to combine all keyboard checks into one method.
@jescriba
I think I mentioned this before: we might want to update the Core#keyboard_visible?
method to call the Automator keyboard_visible?
. We can only do this if DeviceAgent keyboard_visible?
does not hang. We might need to introduce a delay in the client before and between calls to keyboard_visible?
I started a branch on calabash-ios: feature/Core-keyboard_visible-calls-automator-keyboard_visible to demonstrate what I think we could do.
@jmoody
We are facing the same issue. Core#keyboard_visible?
returns false. Hence, we are using device_agent.keyboard_visible?
. However, it sometimes throws error "Device Agent is not running".
Xcode - 9.2 iOS 11 run_loop - 2.6.2 calabash - 0.21.1
While in my app's Safari webview (for facebook authentication), after touching a text field and allowing the keyboard to become visible, the keyboard_visible? command returns "false" while the device_agent.keyboard_visible? command returns "true"
Environment: /Applications/Xcode.app/Contents/Developer Xcode 8 - build 8A218a Calabash-ios version 0.20.0 iPhone 6s (iOS 10 simulator)
Using Cocoapods with calabash 0.20.0 pod
Console: