Skip to main content
Inspiring
December 24, 2016
Answered

Issues with softkeyboard not showing on textinput focus after a StageWebView has displayed for the first time.

  • December 24, 2016
  • 1 reply
  • 696 views

This is with Air 24, and affects both iOS and Android, but I tried with older Air SDKs with the same results.

I have tried all sorts of things, including

stageWebView.stage=null;
stageWebView.dispose();
stageWebView = null;
_stage.focus=_stage;
_stage.displayState = StageDisplayState.FULL_SCREEN;
_stage.focus=_stage

I am using the Flex SDK for textinput components and they all work fine as long as I have never displayed a StageWebView yet. As soon as I have done that, the TextInputs can receive touch (and flashing text cursor can appear in the right place) but no SoftKeyboard will appear so it is impossible to enter text.

In an extra piece of weirdness, in an application 'exit' (android) the softkeyboarddeactivate event can fire on a textinput that has focus even though no softkeyboardActivate event had occurred beforehand for that same textinput. And requestSoftKeyboard does nothing on android after the StageWebView has been shown previously.

I have tested so far on Galaxy S4, Galaxy S6edge, Galaxy Note 10.1 2014, Ipad 4, but others have seen the same thing on a wide range of devices.

Can anyone shed some light on this issue - am I not doing something, or is this known (and are there any workarounds?). I have been chasing my tail on this one.

Thanks

-Greg

Additional note: After a StageWebView has appeared, it seems impossible to subsequently have any KEY_DOWN listeners fire and trap the android back key (so you cannot 'navigate' back out of the StageWebView to the app or manage the history functions in the stagewebview). This state persists after the StageWebView has been programmatically cleared so the original back key responder that was working perfectly prior to displaying the StageWebView no longer works. The default back key behaviour is used and the application is backgrounded. I mention this here because perhaps it is related, however I will create a specific discussion thread for this. It obviously worked at some point in AIR SDK history because there are code examples that show how this should be working. I know the keydown listener is working before the StageWebView  is displayed, but it does not work during or after it has been displayed.

This topic has been closed for replies.
Correct answer Greg Dove

The issue was resolved.

_stage.displayState = StageDisplayState.FULL_SCREEN;

needed to be changed to:

_stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;

The fact that mouse events etc still occur in the 'non-interactive' mode was deceiving me.... the INTERACTIVE is required for soft keyboard (and it turns out, also to receive the back key on android).

1 reply

Greg DoveAuthorCorrect answer
Inspiring
December 29, 2016

The issue was resolved.

_stage.displayState = StageDisplayState.FULL_SCREEN;

needed to be changed to:

_stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;

The fact that mouse events etc still occur in the 'non-interactive' mode was deceiving me.... the INTERACTIVE is required for soft keyboard (and it turns out, also to receive the back key on android).