2011-11-06 16 views
5

मैं जो करना चाहता हूं वह प्रारंभिक ज़ूम स्केल सेट करता है [और कुछ मामलों में, सामग्री ऑफ़सेट, लेकिन यह कम महत्वपूर्ण है] बाहरी वेबसाइट के लिए। लेकिन ऐप शुरू में ज़ूम और ऑफसेट सेट करने के बाद, उपयोगकर्ता उन्हें बदलने में सक्षम होना चाहिए, और ऐप को हस्तक्षेप नहीं करना चाहिए।UIWebView बाहरी वेबसाइट लोड करते समय प्रोग्रामेटिक रूप से प्रारंभिक ज़ूम स्केल सेट करें?

कुछ संबंधित जानकारी here, here, और here उपलब्ध है। लेकिन जहां तक ​​मैं कह सकता हूं, मैं जो भी चाहता हूं वह कोई भी नहीं करता है।

मेटा सेटिंग दृष्टिकोण आशाजनक लग रहा है - लेकिन जब मैं लोड की गई HTML सामग्री को नियंत्रित नहीं करता हूं तो मैं इसे कैसे सेट करूं?

उत्तर

26

प्रारंभिक ज़ूम स्तर की स्थापना के लिए यह प्रयास -

[webView stringByEvaluatingJavaScriptFromString:@"document. body.style.zoom = 5.0;"]; 

इसके अलावा न कोई को scalesPageToFit स्थापित करने के लिए भूल जाते हैं और आपका काम हो गया।

यदि आप इसे YES पर सेट करते हैं, तो वेबपृष्ठ फिट करने के लिए स्केल किया गया है और उपयोगकर्ता ज़ूम इन और ज़ूम आउट कर सकता है। यदि नहीं, उपयोगकर्ता ज़ूमिंग अक्षम है। यह डिफ़ॉल्ट मान नहीं है।

+2

मैंने इसे वेब व्यूडिडफिनिशलोड में रखा है, और यह बहुत अच्छा काम करता है, धन्यवाद! लेकिन मैं उपयोगकर्ता को अपना प्रारंभिक ज़ूम बदलने की अनुमति देना चाहता हूं। मैं नहीं चाहता कि पेज फिट करने के लिए स्केल किया जाए [जो यह नहीं है] - लेकिन उपयोगकर्ता ज़ूमिंग अक्षम है। –

+0

विलियम, क्या आपने इसे हल किया? – Tony

+0

@WilliamJockusch क्या आपको कोई समाधान मिला? – mhmdshawqi

1

नहीं क्यों:

[self.webView.scrollView setZoomScale:2.0 animated:YES]; 
+0

यह मेरे लिए काम नहीं किया। – Luke

0

best one found अपने tag.It में, अपने html में मेटा टैग जोड़ने की कोशिश एक आंख झपकाने में मरम्मत हो जाता है। apple link आज़माएं और आपके लिए उपयुक्त मेटा टैग चुनें।

0

यदि आप एचटीएमएल और जावास्क्रिप्टिन uiwebview लोड कर रहे हैं तो व्यूपोर्ट सेट उपयोगकर्ता-स्केलेबल = 1.0 में।

3

आप अपने वेब दृश्य के लिए प्रारंभिक ज़ूम स्थापित करने के लिए और फिर अपने वेब दृश्य मापनीय कर सकते हैं। आप WebViewDidFinishLoad प्रोटोकॉल विधि पर अपने HTML स्ट्रिंग के हेड टैग में मेटा टैग जोड़ने का प्रयास कर सकते हैं। आप अपनी आवश्यकतानुसार अनुकूलित करने के लिए 'प्रारंभिक-पैमाने', 'न्यूनतम-स्तर' और 'अधिकतम-पैमाने' को बदल सकते हैं। ऐसा लगता है:

- (void)webViewDidFinishLoad:(UIWebView *)webView { 
    NSString* js = 
    @"var meta = document.createElement('meta'); " \ 
    "meta.setAttribute('name', 'viewport'); " \ 
    "meta.setAttribute('content', 'width = device-width, initial-scale = 1.0,minimum-scale=1.0,maximum-scale=10.0 user-scalable = yes'); " \ 
    "document.getElementsByTagName('head')[0].appendChild(meta)"; 
    [webView stringByEvaluatingJavaScriptFromString: js]; 
} 
+0

धन्यवाद मैं इस टैग के बारे में जानता हूं लेकिन मुझे नहीं पता कि कैसे कार्यान्वित किया जाए। तुम मेरा दिन बचाओ –

+0

बहुत बहुत धन्यवाद। –

संबंधित मुद्दे