2016-05-19 5 views
9

में वेबव्यू से जावास्क्रिप्ट अपवादों को पकड़ें मुझे WebView में होने वाली त्रुटियों को पकड़ने की आवश्यकता है यदि WebView स्क्रीन में मौजूद है। यह एक विशिष्ट WebView से बंधना नहीं है।आईओएस

+0

'UIWebView'? 'WKWebView'? 'एक विशिष्ट वेब व्यू से बंधे नहीं' ?? – Wain

उत्तर

4

सुनिश्चित नहीं है कि आपने पहले से ही इस समाधान का प्रयास किया है, तो आप अपने जेएस कोड में अपवाद पकड़ सकते हैं और इस जानकारी को लॉग करने के लिए मूल विधि को कॉल कर सकते हैं। UIVebView प्रतिनिधि कॉलबैक प्राप्त करने के बाद UIWebview के जेएस संदर्भ में आप इस देशी विधि कार्यान्वयन को इंजेक्ट कर सकते हैं कि वेब व्यू के लिए जेएस संदर्भ बनाया गया है।

- (void)webView:(id)webView didCreateJavaScriptContext:(JSContext *)context forFrame:(id)frame { 
//this injects the MyNativeLog in your UIWebView JS context and you can call this function in your JS code. 
context[@"MyNativeLog"] = ^(NSString *string){ 
      NSLog(@"%@", string); 
     }; 
} 

उम्मीद है कि इससे मदद मिलती है !!

+0

धन्यवाद, समाधान मेरे लिए काम किया। – Subrat

+0

वादिम डेनिसुक, अगर यह आपके लिए काम करता है तो कृपया उत्तर स्वीकार करें। – Chandra

+0

चंद्र, मुझे जावास्क्रिप्ट से कोड कॉल करने की आवश्यकता नहीं है। मुझे जावास्क्रिप्ट कोड तक पहुंच नहीं होगी। –

2

अगली मई में मदद करता है आप नीचे दिए गए लिंक है जो जाँच कृपया पहले से ही मौजूद

How can my iPhone Objective-C code get notified of Javascript errors in a UIWebView?

आप छिपा वेबकिट ढांचे के लिए UIWebView नियंत्रण हुक और सभी अपवादों, निष्पादित कार्य करता है और इसी तरह की मिल सकती है।

0

आपको webView:didClearWindowObject:forFrame:WebFrameLoadDelegate Protocol की विधि का उपयोग करने की आवश्यकता है।

चेक करें: https://developer.apple.com/library/mac/documentation/Cocoa/Reference/WebKit/Protocols/WebFrameLoadDelegate_Protocol/#//apple_ref/occ/instm/NSObject/webView:didClearWindowObject:forFrame:

वहाँ आप जावास्क्रिप्ट अपवाद है कि होने के लिए होता है किसी भी प्रकार की पकड़ सकते हैं। यह एक विशिष्ट वेब व्यू से बंधे नहीं है।