2010-01-15 13 views
8

उस पृष्ठ को लोड करने/निष्पादित करने से पहले, मुझे प्रत्येक पृष्ठ परिवर्तन पर कुछ करने की आवश्यकता है।UIWebView में पृष्ठ परिवर्तन का पता लगाने और लोड होने से पहले कुछ करने के लिए कैसे करें?

सबसे पहले, मैंने -webView:shouldStartLoadWithRequest: का उपयोग करने का प्रयास किया लेकिन यह काम नहीं करेगा, क्योंकि इसे XHR अनुरोधों और iframe अनुरोधों के लिए भी कहा जाता है।

दूसरा, मैंने -webViewDidStartLoad: का उपयोग करने की कोशिश की और webView.request की तुलना पिछले मूल्य पर की, यह देखने के लिए कि क्या यह बदल गया है। यह काम नहीं करता है, क्योंकि webView.request कॉल के कुछ ही समय बाद अपडेट किया जाता है।

कोई और विचार?

उत्तर

0

कोई श्रेणी बनाएं या UIWebview का विस्तार करें जो loadRequest को ओवरराइड करता है, पहले अपना ऑपरेशन कर रहा है और फिर मानक loadRequest कर रहा है।

+0

यह काम नहीं करेगा ... पृष्ठ को 30x रीडायरेक्ट, मेटा रीडायरेक्ट, जेएस सेटिंग विंडो.लोकेशन इत्यादि के परिणामस्वरूप बदला जा सकता है ... –

+0

आह इसलिए आप stringByEvaulatingJavaScriptFromString पर एक फ़िल्टर सेट अप करना चाहते हैं : या डोम पेड़ से अधिक विस्तृत डेटा प्राप्त करें? –

1

क्या आपने UIWebView.request का निरीक्षण करने के लिए केवीओ का उपयोग करने का प्रयास किया है?

10

WebView में अनुरोध वस्तु: shouldStartLoadWithRequest: दो गुण,

BOOL iframe = ![request.URL isEqual:request.mainDocumentURL]; 

URL लोड करने में mainDocumentURL आप मुख्य दस्तावेज़ (शायद एक iFrame) के अलावा कुछ लोड कर रहे हैं के बराबर नहीं है तो है।

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