My understanding is that hypeDocument.kHypeGesturePhaseEnd
occurs when a touchend
event was detected (the finger was released from the element being dragged) and hypeDocument.kHypeGesturePhaseCancel
occurs when another event interrupts the drag but a specific finger gesture wasn’t the cause.
The Cancel event occurs when you attempt to drag an element out of an iframe.
Listening for both events is smart because it covers all your bases – either the gesture has been intentionally exited, or something weird (like Mobile Safari detecting the beginning of a Swipe from the left, which it think means you want to go ‘Back’) has occurred.