2010-12-14 17 views
7

मैंने फेसबुक के ग्राफ एपीआई ओथ इंटरफ़ेस में लॉग इन करने के लिए UIWebView बनाया है। यह बहुत अच्छा काम करता है, लेकिन कीबोर्ड को पॉप अप करने के लिए मुझे पहले इनपुट फ़ील्ड को टैप करना होगा। आदर्श रूप में, जैसे ही फॉर्म प्रकट होता है, कीबोर्ड दिखाई देगा। इसलिए मैं यह पता लगाने कैसे पहले फॉर्म फील्ड तो की तरह, webViewDidFinishLoad: UIWebViewDelegate विधि से ध्यान केंद्रित करना सुनिश्चित कर सकें करने की कोशिश कर रहा है:फॉर्म इनपुट पर ध्यान केंद्रित करने और कीबोर्ड लाने के लिए मैं UIWebView कैसे प्राप्त कर सकता हूं?

- (void)webViewDidFinishLoad:(UIWebView *)wv { 
    [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByName('email')[0].focus();"]; 
} 

ओह, यह काम नहीं करता। उत्सुकता से, जब मैं फ़ायरफ़ॉक्स जावास्क्रिप्ट कंसोल में उस जावास्क्रिप्ट को चलाता हूं, तो यह फोकस ईमेल फ़ील्ड पर ले जाता है। जब मैं इसे मैक के लिए सफारी में चलाता हूं, हालांकि, यह आईओएस की तरह कुछ भी नहीं करता है। एफडब्ल्यूआईडब्ल्यू, alert(document.getElementsByName('email')[0]) दिखाता है कि यह एक HTMLInputElement का चयन करता है। तो focus() आईओएस या मैक ओएस एक्स में कुछ भी क्यों नहीं करता है?

+3

के साथ संभव है। Http://stackoverflow.com/questions/4199225/how-to-get- मोबाइल-browsers-webkit-in-ios-android-to-display-their-soft-keyboar – Soumya

+0

धन्यवाद, यह मदद करता है। यदि आप इसे एक उत्तर के रूप में रखेंगे तो मैंने इसे सही उत्तर के रूप में चिह्नित किया होगा। :-) – theory

उत्तर

27

यह मुझे नहीं लगता कि यह संभव है करना आईओएस 6.

UIWebView* webView = <#your webView here#>; 
[webView setKeyboardDisplayRequiresUserAction:NO]; 
[webView loadHTMLString:@"<html><head></head><body><form><input id=\"textField\" /></form><script>document.getElementById(\"textField\").focus();</script></body></html>" 
       baseURL:nil]; 
+0

नए आगंतुक: गुना के बाद जावास्क्रिप्ट पर ध्यान दें :) –

+1

क्या यह UIWebView के बजाय WKWebView के साथ प्राप्त किया जा सकता है? – Fizzix

0

soumya92 मूल पोस्ट पर टिप्पणी में this post पता चलता है कि इस समय यह संभव नहीं है। अफसोस।

+1

आपको @ आर्कैंक के सर्वोत्तम उत्तर पर पुनर्विचार करना चाहिए। –

+1

@DirtyHenry हो गया। – theory