cordova-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Adrian Vasiliu (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (CB-5115) On iOS 7, events are dispatched to wrong elements when taping an input field pops the virtual keyboard
Date Thu, 17 Oct 2013 13:42:44 GMT

     [ https://issues.apache.org/jira/browse/CB-5115?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Adrian Vasiliu updated CB-5115:
-------------------------------

    Description: 
On iOS 7, when a Cordova 3.1 app contains input fields (<input>, <textarea>),
the events such as "focus" and "click" can be dispatched to the wrong elements when taping
the field while the virtual keyboard is not visible.

Apparently, the event dispatching mechanism is confused by the fact the page is pushed by
the keyboard showing up: the events are dispatched to the element at the coordinate after
the push, instead of the element at the coordinate of the initial tap gesture.

Reproduced with Cordova 3.1 using Xcode 5.0 on Mac OS X 10.8.5, running on iPhone and iPad
simulators and real devices. 

How to reproduce:
Run on iOS 7 a Cordova 3.1 app using the code from the attached test file. The test contains
several input elements, and a message area which displays a message for each "focus" and "click"
events received by the input elements; the message includes the id of the element. When tapping
an input element while the keyboard is not visible, the message shows that the event is received
by wrong element. Also, the wrong input is focused. 

Notes:
- Reproduced only when *not* using height:device-height in the meta tag, per the recommendation
in the Cordova 3.1 doc (http://cordova.apache.org/docs/en/3.1.0/guide_platforms_ios_upgrading.md.html#Upgrading%20iOS).
- Setting KeyboardShrinksView to either true or false in config.xml does not matter for this
issue.
- The same test code works fine in a pure webapp in Safari on iOS 7.

  was:
On iOS 7, when a Cordova 3.1 app contains input fields (<input>, <textarea>),
the events such as "focus" and "click" can be dispatched to the wrong elements when taping
the field while the virtual keyboard is not visible.

Apparently, the event dispatching mechanism is confused by the fact the page is pushed by
the keyboard showing up: the events are dispatched to the element at the coordinate after
the push, instead of the element at the coordinate of the initial tap gesture.

Reproduced with Cordova 3.1 using Xcode 5.0 on Mac OS X 10.8.5, running on iPhone and iPad
simulators and real devices. 

How to reproduce:
Run on iOS 7 a Cordova 3.1 app using the code from the attached test file. The test contains
several input elements, and a message area which displays a message for each "focus" and "click"
events received by the input elements; the message includes the id of the element. When tapping
an input element while the keyboard is not visible, the message shows that the event is received
by wrong element. Also, the wrong input is focused. 

Notes:
- Reproduced only when *not* using height:device-height in the meta tag, per the recommendation
in the Cordova 3.1 doc (http://cordova.apache.org/docs/en/3.1.0/guide_platforms_ios_upgrading.md.html#Upgrading%20iOS).
- The same test code works fine in a pure webapp in Safari on iOS 7.


> On iOS 7, events are dispatched to wrong elements when taping an input field pops the
virtual keyboard
> ------------------------------------------------------------------------------------------------------
>
>                 Key: CB-5115
>                 URL: https://issues.apache.org/jira/browse/CB-5115
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: iOS
>    Affects Versions: 3.1.0
>         Environment: iOS 7
>            Reporter: Adrian Vasiliu
>
> On iOS 7, when a Cordova 3.1 app contains input fields (<input>, <textarea>),
the events such as "focus" and "click" can be dispatched to the wrong elements when taping
the field while the virtual keyboard is not visible.
> Apparently, the event dispatching mechanism is confused by the fact the page is pushed
by the keyboard showing up: the events are dispatched to the element at the coordinate after
the push, instead of the element at the coordinate of the initial tap gesture.
> Reproduced with Cordova 3.1 using Xcode 5.0 on Mac OS X 10.8.5, running on iPhone and
iPad simulators and real devices. 
> How to reproduce:
> Run on iOS 7 a Cordova 3.1 app using the code from the attached test file. The test contains
several input elements, and a message area which displays a message for each "focus" and "click"
events received by the input elements; the message includes the id of the element. When tapping
an input element while the keyboard is not visible, the message shows that the event is received
by wrong element. Also, the wrong input is focused. 
> Notes:
> - Reproduced only when *not* using height:device-height in the meta tag, per the recommendation
in the Cordova 3.1 doc (http://cordova.apache.org/docs/en/3.1.0/guide_platforms_ios_upgrading.md.html#Upgrading%20iOS).
> - Setting KeyboardShrinksView to either true or false in config.xml does not matter for
this issue.
> - The same test code works fine in a pure webapp in Safari on iOS 7.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Mime
View raw message