touchstart等のtouchイベントの引数eにe.touches
が含まれていて、その中にタッチしている指の情報が順次入る。
- 指Aを押下
- 指Bを押下
- 指Aを離す
- 指Aを押下
以上の操作をするとiOSでは
[指A]
[指A, 指B]
[指B]
[指B, 指A]
と情報が入るのに対してAndroidは
[指A]
[指A, 指B]
[指B]
[指A, 指B]
と情報が入るので注意が必要。見分けるにはe.touches[n].identifier
を使う。ちなみにこのidentifierも違っていて、Androidだと0, 1, 2...
となるが、iOSだと256808260, 256808261...
みたいな値が入る。
指の押下時にAndroidではidentifierを0から順に見て空いてる値があったらそれを割り当ててidentifier順でソートしていて、iOSはidentifierを最大の値+1で割り当ててidentifier順でソートしているみたい。