2010-01-14 11 views
5

में वेबसाइटों को नियंत्रित करने के लिए मुझे एक वेबसाइट को नियंत्रित करने की आवश्यकता है जो UIWebView में लोड किया गया है जैसे पोस्ट डेटा भेजना और अनुरोध प्राप्त करना। प्रत्येक अनुरोध के बाद प्रतिक्रिया एक चर के रूप में एक स्ट्रिंग के रूप में लोड किया जाना चाहिए।आईफोन एसडीके: UIWebView प्रोग्रामेटिक रूप से

इसका कारण यह है कि मैं ऐसी वेबसाइट से डेटा लाने की कोशिश कर रहा हूं जिसमें कोई सार्वजनिक वेब एपीआई नहीं है और कुकी आधारित उपयोगकर्ता प्रमाणीकरण का उपयोग कर रहा है। इसलिए मैं उपयोगकर्ता को लॉगिन करना चाहता हूं, उस साइट से कुछ डेटा प्राप्त करना चाहता हूं और परिणाम प्रस्तुत करना चाहता हूं।

क्या यह कुछ सकारात्मक है?

संपादित करें: मैं सिर्फ विधि stringByEvaluatingJavaScriptFromString बारे में जाना। जेएस के साथ UIWebView के भीतर सामग्री को नियंत्रित करने के लिए इस विधि का उपयोग करना उचित होगा? एक वेब फॉर्म जमा करने की तरह और पृष्ठ को लोड करने और प्रतिक्रिया डेटा प्राप्त करने की प्रतीक्षा करें?

संपादित 2: बस एक रूपरेखा है कि उपयोगी ASIHTTPRequest

उत्तर

2

ज़रूर यह संभव है हो सकता है पाया। बस नेटवर्किंग कोड स्वयं करें और फिर परिणामस्वरूप HTML int और UIWebView को डंप करें।

NSURLResponse *response = nil; 
NSError *error = nil; 
NSData *respData = [NSURLConnection sendSynchronousRequest:request 
             returningResponse:&response 
                error:&error]; 
NSString *respString = [[[NSString alloc] initWithData:respData 
               encoding:NSUTF8StringEncoding] autorelease]; 

NSString *htmlString = [self doSomethingWith:respString]; 

[webView loadHTMLString:htmlString baseURL:@"http://stackoverflow.com"]; 

इसके अलावा कि आप ब्राउज़र को नियंत्रित करने के लिए जावास्क्रिप्ट का उपयोग कर सकते ध्यान रखें:

// Do your POST 
NSURL *url = [NSURL URLWithString:"http://stackoverflow.com"]; 
NSString *body = @"laadeedaa"; 

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; 
[request setHTTPMethod: @"POST"]; 
[request setHTTPBody: [body dataUsingEncoding:NSUTF8StringEncoding]]; 

// Dump the response to the UIWebView 
[webView loadRequest:request]; 

आप इसे प्रदर्शित करने से पहले प्रतिक्रिया पर कार्रवाई चाहते हैं, तो आप की तर्ज पर कुछ करना चाहता हूँ जाएगा :

- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script 
+0

आपके तेज़ उत्तर के लिए धन्यवाद। क्या NSMutableURLRequest लेखक वेब कुकीज़ का ख्याल रखेगा? या यह सिर्फ अनुरोध भेज देगा - आग की तरह और भूल जाओ? – dan

+1

मुझे ईमानदार होने के बारे में पता नहीं है। मैं पिछले 6 महीनों के लिए मोनो टच का उपयोग कर रहा हूं। ऐप्पल के अच्छे दस्तावेज़ हैं; अन्यथा, एक नया SO सवाल खोलें। –

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