दिलचस्प पोस्ट
जावास्क्रिप्ट में प्रोग्रामाइक्स एक्सटेक्ट कमी (उर्फ टेक्स्ट सामान्यीकरण या बिना असमान) विशेष रूप से, malloc के परिणाम कास्टिंग करने के बारे में क्या खतरनाक है? क्या आप वर्तमान क्रियान्वित करने के लिए विधि का नाम खोजने के लिए प्रतिबिंब का उपयोग कर सकते हैं? पाठ: दाएं से बाएं (सीएसएस) 'स्व' के साथ संपत्तियों का उपयोग कब करना है CSS3 संक्रमण प्रदर्शन संपत्ति के साथ काम नहीं करता JAXB द्वारा उत्पन्न नहीं @ XmlRootElement एक सर्वर प्रक्रिया के रूप में Excel फ़ाइलों को पढ़ना हाशटेबल पर डिक्शनरी क्यों पसंद है? क्या मैं टीएलएस के बिना टीएलएस-सक्षम डेमन से कनेक्ट करने की कोशिश कर रहा हूं? सॉर्टिंग टेबल गलत है जब सॉर्ट बटन को एक से अधिक बार दबाया जाए? एंड्रॉइड: टेक्स्टव्यू: ऊपर और नीचे पर रिक्ति और पैडिंग निकालें जावास्क्रिप्ट में URL से JSON कैसे प्राप्त करें? iPhone UITextField – प्लेसहोल्डर टेक्स्ट का रंग बदलें स्ट्रिंग में वर्ण का स्थान ढूंढें

UIWebView iOS5 बदलते हुए उपयोगकर्ता-एजेंट

मैं iOS 5 में UIWebView के उपयोगकर्ता-एजेंट कैसे बदल सकता हूं?

मैंने अभी तक क्या किया है: प्रतिनिधि का उपयोग वापस कॉल करें, NSURLRequest को अवरुद्ध करें, एक नया यूआरएल अनुरोध बनाएं और इसे उपयोगकर्ता-एजेंट को जो कुछ भी मैं चाहता हूं, सेट करें, फिर डेटा डाउनलोड करें और "LoadData: MIMEType: … के साथ यूआई वेबबय लोड करें … … । "।

समस्या: यह अनंत रिकर्सन का कारण बनता है, जहां मैं डेटा लोड करता हूं, जो प्रतिनिधि को वापस कॉल करता है, जो निदेशक को कॉल करता है ….

यहां प्रतिनिधि विधि है:

- (BOOL)webView:(UIWebView *)aWebView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { dispatch_async(kBgQueue, ^{ NSURLResponse *response = nil; NSMutableURLRequest *newRequest = [NSMutableURLRequest requestWithURL:[request URL]]; NSDictionary *headers = [NSDictionary dictionaryWithObject: @"custom_test_agent" forKey:@"User-Agent"]; [newRequest setAllHTTPHeaderFields:headers]; [self setCurrentReqest:newRequest]; NSData *data = [NSURLConnection sendSynchronousRequest:newRequest returningResponse:&response error:nil]; dispatch_sync(dispatch_get_main_queue(), ^{ [webView loadData:data MIMEType:[response MIMEType] textEncodingName:[response textEncodingName] baseURL:[request URL]]; }); }); return YES; } 

Solutions Collecting From Web of "UIWebView iOS5 बदलते हुए उपयोगकर्ता-एजेंट"

जब आपका ऐप आरंभ होता है, तो कोड को चलाकर "UserAgent" डिफ़ॉल्ट मान को बदलें:

 NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"Your user agent", @"UserAgent", nil]; [[NSUserDefaults standardUserDefaults] registerDefaults:dictionary]; 

संपादित करें: मैंने इसे बड़ी सफलता के साथ उपयोग किया है, लेकिन अतिरिक्त विवरण जोड़ना चाहते हैं। एक उपयोगकर्ता एजेंट प्राप्त करने के लिए, आप "डेवलपर" मेनू को सक्षम कर सकते हैं, उपयोगकर्ता एजेंट सेट कर सकते हैं, और उसके बाद इस साइट से कनेक्ट कर सकते हैं ताकि आप इसे प्रिंट कर सकें : WhatsMyAgent इसी तरह आप किसी भी तरह के मोबाइल डिवाइस का उपयोग कर कनेक्ट कर सकते हैं, और इस तरह से भी इसे प्राप्त कर सकते हैं। BTW यह अभी भी iOS7 + में ठीक काम कर रहा है

स्विफ्ट में यह प्रयोग करने के लिए UserAgent ,

 func setUserAgent(){ var userAgent = NSDictionary(objectsAndKeys: "YourUserAgentName","UserAgent") NSUserDefaults.standardUserDefaults().registerDefaults(userAgent as [NSObject : AnyObject]) } 

परीक्षण करने के लिए इसका प्रयोग करें,

 println(WebView.stringByEvaluatingJavaScriptFromString("navigator.userAgent")); 

जब आप संदेश भेजें [aWebView loadData:MIMEType:textEncodingName:baseURL:]

तब एक aWebView shouldStartLoadWithRequest: होना चाहिए, साथ में फिर से, और फिर से – इसलिए आपको एक अनंत पुनर्कथन प्राप्त होगा

आपको अपने dispatch_async() ब्लॉक को कॉल करना प्रतिबंधित करना चाहिए, उदाहरण के लिए कुछ पारंपरिक यूआरएल का उपयोग करके:

 - (BOOL)webView:(UIWebView *)aWebView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { if ([[[request URL] absoluteString] isEqualToString:@"http://yourdomain.com/?local=true"]) { return YES; } ... dispatch_async(... [aWebView loadData:data MIMEType:[response MIMEType] textEncodingName:[response textEncodingName] baseURL:[NSURL URLWithString:@"http://yourdomain.com/?local=true"]]; ); return NO; }