2009-11-02 8 views
37

क्या कोई ईवेंट प्रारंभ करना संभव है जब UIWebView (Iphone) ने यूआरएल लोड करना समाप्त कर दिया हो।UIWebView लोड हो रहा है इवेंट

UIWebView का वर्तमान URL, मैं कैसे पता लगा सकता हूं?

उत्तर

74

हां, यह संभव है। UIWebViewDelegate प्रोटोकॉल का उपयोग करें और अपने प्रतिनिधि में निम्नलिखित विधि को लागू:

webView.request.URL 
+0

धन्यवाद :) यह काम किया :) – ishhhh

+0

एक मृत विषय जागने के लिए खेद है, लेकिन (UIWebview *) वेब व्यू, क्या वेब आपके वेबव्यू नाम के आउटलेट का नाम है? –

+1

@CameronTarbell यह एक प्रतिनिधि तरीका है, यह वेब व्यू में गुज़र जाएगा जो आपके आउटलेट नाम से स्वतंत्र 'वेब व्यू' चर के साथ लोड हो गया है। – Pascal

1

बहुत ही सरल विधि:

- (void)webViewDidFinishLoad:(UIWebView *)webView 

आप URL चाहते हैं, आप संपत्ति request का उपयोग कर अंतिम अनुरोध प्राप्त कर सकते हैं

चरण 1: शीर्षलेख फ़ाइल में प्रतिनिधि UIWebViewDelegate सेट करें।

चरण 2: जोड़ें webViewDidFinishLoad विधि निम्न में से पाया समाधान के webview

- (void)webViewDidFinishLoad:(UIWebView *)webView 
{ 
    NSLog(@"Current URL = %@",webView.request.URL); 

    //-- Add further custom actions if needed 
} 
2

कोई भी मेरे लिए काम किया वर्तमान URL प्राप्त करने के लिए।

फिर मुझे यह उदाहरण मिला जो कम से कम Google/StackOverflow पर मिले किसी भी अन्य समाधान से बेहतर काम करता है।

uiwebview-load-completion-tracker

1

"URL प्राप्त" भाग के लिए पास्कल जवाब ठीक है।

हालांकि!

ऐप्पल से UIWebViewDelegate के दस्तावेज़ से, "वेब व्यूडिडफिनिशलोड: वेब दृश्य के बाद भेजा गया फ्रेम को लोड करने के बाद भेजा जाता है।"

फ़्रेम! = पृष्ठ।

वेब व्यूडिडफिनिशलोड को तब कहा जाता है जब पृष्ठ "लोड हो रहा है"। इसे पहले भी कई बार बुलाया जा सकता है। Amazon.com से पेज लोड webViewDidFinishLoad पर एक दर्जन कॉल उत्पन्न कर सकते हैं।

यदि आप पृष्ठ स्रोत को नियंत्रित करते हैं, तो आप इसके लिए एक लोड टेस्ट कर सकते हैं, और यह उस मामले के लिए काम करेगा। यदि आपको केवल पृष्ठ लोड होने के बाद "कॉल करने के बारे में परवाह है, तो WebViewDidFinishLoad पर्याप्त है।

अनियंत्रित पृष्ठों के साथ, मनमाने ढंग से जावास्क्रिप्ट के साथ, शाश्वतता में विज्ञापन बैनर लोड करना, या वीडियो गेम को कार्यान्वित करना, एक पृष्ठ का "विचार लोड करना" का विचार गलत है।