2012-07-06 5 views
9

आईफोन में UIWebView लोड करते समय यूआरएल रीडायरेक्ट का पता लगाने का कोई तरीका है। जब मैं www.example.com url लोड करता हूं, तो यह किसी अन्य यूआरएल पर रीडायरेक्ट करता है। मुझे उन यूआरएल को रीडायरेक्ट करने की ज़रूरत है और वास्तव में हम रीडायरेक्शन कहां हैं।आईफोन पर UIWebView लोड करते समय यूआरएल के रीडायरेक्ट का पता लगाने के लिए कैसे होता है?

उत्तर

5

हाँ आप यह कर सकते हैं। कार्यान्वयन

– webView:shouldStartLoadWithRequest:navigationType: 

यह delegate। जब भी आपका वेबव्यू अनुरोध करने जा रहा है, तो यह विधि कॉल हो जाती है। तो अब जब कोई आपके वेबपृष्ठ पर बटन या हाइपरलिंक क्लिक करता है, तो आपको इस विधि पर कॉल प्राप्त होगा। इस कॉल को पकड़ने के बाद, आप जो भी चाहें वह करना चुन सकते हैं। अपने सर्वर के माध्यम से लिंक को रीडायरेक्ट करने की तरह, या उपयोगकर्ता गतिविधि के बारे में अपने सर्वर से अनुरोध लॉग करें या अपने मामले में टिप्पणी पृष्ठ लाएं या एनएवी बार इत्यादि बदलें

शायद request से आप यह समझ सकते हैं कि HTTP प्रतिक्रिया कोड है 3xx पुनर्निर्देशन तो आप आप क्या चाहते हैं कर सकते हैं ...

+1

तो, मैं पुनर्निर्देशित यूआरएल कैसे प्राप्त करूं? – neerajPK

+0

या, यह पता लगाने का कोई तरीका है कि कौन सा पुनर्निर्देशन विफल हो गया है। असल में मेरा वेब यूआरएल दो बार पुनर्निर्देशित करता है। अगर पहला रीडायरेक्ट विफल हो जाता है तो मुझे कुछ क्रियाएं करने की आवश्यकता होती है। क्या उनका कोई तरीका है? – neerajPK

+0

अनुरोध से प्रतिक्रिया कोड को कैसे समझें? – hariszaman

1

इस प्रयास करें:

-(BOOL) webView:(UIWebView *)inWeb shouldStartLoadWithRequest:(NSURLRequest *)inRequest navigationType:(UIWebViewNavigationType)inType { 
     if (inType == UIWebViewNavigationTypeLinkClicked){ 
      [[UIApplication sharedApplication] openURL:[inRequest URL]]; 
      return NO; 
     } 
     return YES; 
    } 
+0

असल में साइट स्वचालित रूप से किसी अन्य वेब यूआरएल पर रीडायरेक्ट हो जाती है – neerajPK

2

मैं जब भी ऐसा ही करने के लिए होने इस सूत्र मिल गया। मैंने श्रीकार का जवाब इस्तेमाल किया, लेकिन यहां मेरा कोड है।

मैं लंबरजैक लॉगिंग का उपयोग कर रहा हूं, लेकिन आप नीचे एनएसएलओजी के साथ नीचे प्रतिस्थापित कर सकते हैं। यदि आप विफलता है (जो मुझे करना है) तो यह जानने के लिए कि आप होस्ट, पथ या क्वेरी स्ट्रिंग को देख रहे थे, तो आप यूआरएल के विशिष्ट हिस्सों को भी प्राप्त कर सकते हैं। यदि यह कई बार पुनर्निर्देशित करता है, तो प्रत्येक अनुरोध यहां कॉल किया जाएगा और यदि आप चाहते हैं कि आप इसे रोक सकते हैं और कुछ कर सकते हैं या बस देख सकते हैं।

-(BOOL) webView:(UIWebView *)inWeb shouldStartLoadWithRequest:(NSURLRequest *)inRequest navigationType:(UIWebViewNavigationType)inType 
{ 
    DDLogVerbose(@"Redirecting to URL: %@", inRequest.URL.absoluteString); 
    return YES; 
} 
संबंधित मुद्दे