cordova-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrew Grieve <agri...@chromium.org>
Subject Re: Standardized gestures
Date Thu, 18 Apr 2013 18:31:08 GMT
Agree as well! This would make for a great plugin. If there are things in
Java-land that aren't exposed to plugins that you need in order to make
this work, then we should change core to make them exposed.


On Thu, Apr 18, 2013 at 1:44 PM, Jesse <purplecabbage@gmail.com> wrote:

> Yes, it may have value. Consider writing a plugin.
> The pointer events spec[1] may be of interest, as things like
> tap/slide/pinch are all non-standard.
> I did this exact same thing [2] for Windows Phone 7, as there aren't even
> mouse events.
> There are numerous things you need to be aware of when creating the event,
> like the current zoom/scale of the page, + any panning, scrolling, css3
> translations.
> You also need to consider the way all DOM events bubble from the element to
> the document and back up.
> IMHO, Implementing this correctly is not for the faint of heart, and your
> work may be negated at any time by a new browser.
>
> Cheers,
>   Jesse
>
> [1]
> http://www.w3.org/TR/pointerevents/
> [2]
>
> https://github.com/purplecabbage/cordova-wp7/blob/master/templates/standalone/cordovalib/BrowserMouseHelper.cs
>
>
> @purplecabbage
> risingj.com
>
>
> On Thu, Apr 18, 2013 at 10:08 AM, jbondc@openmv.com <jbondc@openmv.com
> >wrote:
>
> > On the short them, it would help solve 'Android fragmentation' problems:
> >
> >
> https://github.com/android/platform_frameworks_base/blob/android-cts-4.0.3_r2/core/java/android/webkit/WebView.java#L6044
> >
> >
> >
> https://github.com/android/platform_frameworks_base/blob/master/core/java/android/webkit/WebViewClassic.java#L5824
> >
> > Android doesn't exactly pass the touchstart etc.. events to webkit the
> > same way and more importantly with the same delays. Not to mention, some
> > versions have bugs (missing touchend, touchmove events).
> > If coding a pure HTML/javascript app, you can avoid the 'native'
> onTouch()
> > processing and pass events faster to your app.
> >
> > It's an educated guess at the moment, but I'm quite sure performance /
> > response time for the user on all platforms will be better if the gesture
> > detection is done on the native side.
> >
> > On the long term, I don't see how JavaScript libraries would allow
> (within
> > reasonable ms) for more complex 'gesture' detection. I would rather do
> > something like:
> > webView.addGesture('swipe');
> > webView.addGesture('handgrab');
> > onTouch/Gesture:
> > // do gesture detection in native code
> >    webView.sendJavascript("cordova.fireEvent('handgrab', {node, ...}");
> >
> >
> > -----Original Message-----
> > From: Filip Maj [mailto:fil@adobe.com]
> > Sent: Wednesday, April 17, 2013 12:47 PM
> > To: dev@cordova.apache.org
> > Subject: Re: Standardized gestures
> >
> > I'm not convinced you need any additional code here.
> >
> > Touch events are already fired by the web view containers. You could
> build
> > up gesture detection in JavaScript by listening to these events.
> >
> > There are libraries out there that do this for you already:
> >
> >  - http://eightmedia.github.io/hammer.js/
> >  - http://quojs.tapquo.com/
> >  - https://github.com/plainview/Jester
> >  - jquery ui plugin: http://touchpunch.furf.com/
> >  - jquery plugin: http://labs.rampinteractive.co.uk/touchSwipe/demos/
> >  - moar jquery: https://github.com/HotStudio/touchy
> >
> > On 4/17/13 9:42 AM, "jbondc@openmv.com" <jbondc@openmv.com> wrote:
> >
> > >I'm experimenting with Cordova on Android, iOS and Windows 8.
> > >
> > >Has there been a discussion around trying to implement to set of
> > >'standard' gesture recognizers:
> > >http://msdn.microsoft.com/library/windows/apps/BR241937
> > >http://developer.apple.com/library/ios/#documentation/EventHandling/Con
> > >cep
> > >tual/EventHandlingiPhoneOS/GestureRecognizer_basics/GestureRecognizer_b
> > >asi
> > >cs.html
> > >http://developer.android.com/reference/android/view/GestureDetector.htm
> > >l
> > >
> > >The idea would be that the native side executes JavaScript like:
> > >javascript:cordova.fireEvent('tap', {node:
> > >document.elementFromPoint(400, 300), x: 400, y:300 });
> > >javascript:cordova.fireEvent('slide', {node:
> > >document.elementFromPoint(400, 300), x: 400, y:300});
> > >
> > >This function could use document.createEvent to initiate events on the
> > >DOM node:
> > >https://developer.mozilla.org/en-US/docs/DOM/document.createEvent
> > >
> > >The purpose of this would be to have a consistent set of gesture
> > >recognition across different devices instead of having javascript code
> > >in the 'WebView' trying to do gesture detection.
> > >
> > >Thoughts?
> > >
> >
> >
> >
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message