Opened 4 years ago

Closed 4 years ago

#18682 closed defect (wontfix)

dojox/mobile/Overlay: on iPhone iOS8+, after touching an input element the virtual keyboard may cover the input

Reported by: edrojas Owned by: adrian
Priority: undecided Milestone: future
Component: DojoX Mobile Version: 1.9.0
Keywords: Cc:
Blocked By: Blocking:

Description

on test_Opener-SearchList?-async.html:

When taping for writing on the search list, the keyboard hides the search list instead of move it up.

Change History (6)

comment:1 Changed 4 years ago by Patrick Ruzand

Owner: changed from Patrick Ruzand to adrian
Status: newassigned

comment:2 Changed 4 years ago by Adrian Vasiliu

  • The overlay is repositioned (every 50ms) at a position which computation relies among others on information about the available viewport size.
  • dojox/mobile/Overlay's position computation relies on dojo/window.getBox() which returns a height which, on some platforms, sadly doesn't change when the keyboard is open.
  • Using dojox/mobile/common's getScreenSize() is not a solution, they actually both rely ultimately on window.innerHeight on iOS.
  • Is the issue new in iOS 9? No, it's an iOS 8+ issue. Reproduced with iOS 9 beta 5, iOS 8.4, iOS 8.1. Did *not* reproduce with iOS 7.1.
  • Android is known to be safe with this respect. All along versions, the viewport size always substracted the keyboard height. Just in case, tested the overlay with Chrome / Android 5.1 and 6.0 preview / Nexus 5, both are fine.
  • There are tons of complaints on the web about the pain introduced by iOS 8 for computing the available height when the keyboard is open, and about the difficulty to even detect that the keyboard is open (this holds for web apps, non-native). No entirely satisfactory solution, up to my knowledge. (Cordova introduced a keyboard plugin using native APIs for this purpose.)
  • The delite project does contain code to cope with this issue on iOS (https://github.com/ibm-js/delite/blob/0.7.1/Viewport.js#L48:L100). This works pretty well (approximately) in many cases, but I'm not sure we would want to go the same way in dojox/mobile, in particular in the context of the increasing number of iOS devices with various size characteristics.
  • Note that it's not all Openers which are affected, but only the Overlay and the Opener in overlay mode ("phone" mode vs. tablet). That is, the issue does not affect iPad. And on iPhone it's not a blocker issue, since the input element is visible again after closing the keyboard.
  • Unless we want to go delite's way, I only see the "won't fix" "solution".
Last edited 4 years ago by Adrian Vasiliu (previous) (diff)

comment:3 Changed 4 years ago by Adrian Vasiliu

Summary: iOS9 / iPhone5: Keyboard hides searchListdojox/mobile/Overlay: on iPhone iOS8+, after touching an input element the virtual keyboard may cover the input

comment:4 Changed 4 years ago by bill

FWIW, dijit also has code for getting the screen size and thinking about the keyboard, in Viewport.getEffectiveBox(). It's also not perfect.

comment:5 Changed 4 years ago by dylan

Milestone: tbd1.12

comment:6 Changed 4 years ago by Adrian Vasiliu

Milestone: 1.12future
Resolution: wontfix
Status: assignedclosed

Given what's said in #comment:2, closing as "won't fix".

Note: See TracTickets for help on using tickets.