यह अधिकांश भाग के लिए उत्तर दिया गया है, लेकिन मैं विस्तार करूंगा ...
चरण 1
मेरा लक्ष्य निश्चित समय पर ज़ूम सक्षम करना था, और इसे दूसरों पर अक्षम करना था।
// enable pinch zoom
var $viewport = $('head meta[name="viewport"]');
$viewport.attr('content', 'width=device-width, initial-scale=1, maximum-scale=4');
// ...later...
// disable pinch zoom
$viewport.attr('content', 'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no');
चरण 2
व्यूपोर्ट टैग अपडेट होगा, लेकिन चुटकी ज़ूम अभी भी सक्रिय था !! मुझे परिवर्तन प्राप्त करने के लिए पृष्ठ प्राप्त करने का एक तरीका खोजना था ...
यह एक हैक समाधान है, लेकिन शरीर की अस्पष्टता टॉगल करने का काम किया। मुझे यकीन है कि इसे पूरा करने के अन्य तरीके हैं, लेकिन यहां मेरे लिए काम किया गया है।
// after updating viewport tag, force the page to pick up changes
document.body.style.opacity = .9999;
setTimeout(function(){
document.body.style.opacity = 1;
}, 1);
चरण 3
मेरी समस्या ज्यादातर इस बिंदु पर हल हो गई थी, लेकिन काफी नहीं। मुझे पृष्ठ के वर्तमान ज़ूम स्तर को जानने की आवश्यकता है ताकि मैं पृष्ठ पर फिट होने के लिए कुछ तत्वों का आकार बदल सकूं (मानचित्र मार्करों के बारे में सोचें)।
// check zoom level during user interaction, or on animation frame
var currentZoom = $document.width() / window.innerWidth;
मुझे उम्मीद है कि इससे किसी को मदद मिलेगी। मैंने समाधान खोजने से पहले अपने माउस को पीटने में कई घंटे लगा दिए।
viewport = document.querySelector("meta[name=viewport]"); viewport.setAttribute('content', 'width=1020');
(बस कुछ संदर्भ के लिए: मैं इसे कुछ हद तक ड्रुपल इंस्टेंस में डाल रहा हूँ ... इसलिए मेरे पास सिर क्षेत्र तक सीधी पहुंच नहीं है और जावास्क्रिप्ट का उपयोग करने की आवश्यकता है)