The workaround that works in Mobile Safari at this time of writing, is to have the the third argument in addEventListener
be { passive: false }
, so the full workaround looks like this:
document.addEventListener('touchmove', function (event) {
if (event.scale !== 1) { event.preventDefault(); }
}, { passive: false });
You may want to check if options are supported to remain backwards compatible.