Touch Events
Proprietary Touch Events
Virtual Mouse Abstraction
No configuration, adds touch support to jQuery UI
Proprietary Touch Events
Proprietary Pointer Event System
Supporting Mouse and WebKit Touch Events
W3C working group delayed and Patent Advisory Group formed
Urging Microsoft to submit a Pointer Events proposal
Pointer Events working group formed
All browsers indicated support for this proposal ... except Apple and they still don't support it.
Finally removed proprietary touch event system
Special Event System / jQuery Specific
Discussing use of hand.js in jQuery
5 years after release in iPhone OS 2
Decided with MS Open Tech that jQuery specific implementation was better
jQuery team, Polymer team and MS Open Tech decided the best route would be for the jQuery team to implement old IE support in Polymer's polyfill.
element.addEventListener( 'mousedown', onMouseDown, false );
element.addEventListener( 'mousemove', onMouseMove, false );
element.addEventListener( 'mouseup', onMouseUp, false );
element.addEventListener( 'touchstart', onTouchStart, false );
element.addEventListener( 'touchmove', onTouchMove, false );
element.addEventListener( 'touchend', onTouchEnd, false );
element.addEventListener( 'MSPointerDown', onPointerDown, false );
element.addEventListener( 'MSPointerMove', onPointerMove, false );
element.addEventListener( 'MSPointerUp', onPointerUp, false );
element.addEventListener( 'pointerdown', onPointerDown, false );
element.addEventListener( 'pointermove', onPointerMove, false );
element.addEventListener( 'pointerup', onPointerUp, false );
var regs = navigator.push.registrations();
var endpoint = navigator.push.register();
navigator.push.unregister( endpoint );
// Prefixed
navigator.mozSetMessageHandler("push", function( message ) { ... });
// AeroGear
navigator.setMessageHandler("push", function( message ) { ... });
var SPC = AeroGear.SimplePushClient({
simplePushServerURL: "URLToSimplePushServer",
useNative: true,
onConnect: function() {
...
}
});
onConnect: function() {
var slideChangeRequest;
slideChangeRequest = navigator.push.register();
slideChangeRequest.onsuccess = function( event ) {
UPC.registerWithPushServer({
...
simplePushEndpoint: event.target.result
});
}
...
}
onConnect: function() {
...
navigator.setMessageHandler( "push", function( message ) {
var notification,
auto = $("#autoSync").prop("checked");
if ( navigator.mozNotification && document.hidden ) {
notification = navigator.mozNotification.createNotification("Push Talk", "Speaker has advanced slide");
...
notification.show();
}
if ( auto ) {
syncSlide();
}
});
}
Kris Borchers @kborchers - Twitter kborchers - GitHub kris@jquery.com http://jquery.org