Hi x0b,
First of all, great stuff! Have been trying to figure out a solution for the same problem...
But, your example wasn't working on my Android device (sony xperia z2,android 4.2.2)...
Changed line 16 from
touch = e.type === 'touchstart'? e.originalEvent.touches[0] : e.originalEvent;
to
touch = e.type === 'touchmove'? e.originalEvent.touches[0] : e.originalEvent;
and it worked for me.
Thanks for your work!