हमारे आईपैड-ऐप में हम एक डोमेन से अलग-अलग साइटों को लोड करने के लिए UIWebView का उपयोग कर रहे हैं जिनमें से कुछ एचएमएल 5-वीडियो के साथ हैं। वीडियो के बिना साइट पूरी तरह लोड हो जाती है। लेकिन जब मैं htmlt5-video वाली साइट लोड कर रहा हूं, तो कभी-कभी मेरा ऐप UICebView की लोडिंग-प्रक्रिया के दौरान EXC_BAD_ACCESS के साथ क्रैश होता है और कभी-कभी ऐसा नहीं होता है। जब भी ऐसा दुर्घटना होती है तो ऐसा लगता है कि उस समय वीडियो प्लेयर को साइट में जोड़ा गया है।UIWebView लोडिंग एचटीएमएल 5-वीडियो EXC_BAD_ACCESS क्रैश
मैंने ऐप्पल से यूआईसीटेल-उदाहरण डाउनलोड किया था और वेबव्यू कंट्रोलर-क्लास में डिफ़ॉल्ट-यूआरएल को एचटीएमएल 5-वीडियो containg साइट के यूआरएल में बदल दिया था। वही परिणाम ... कभी-कभी क्रैश कभी-कभी कोई दुर्घटना नहीं होती है।
मैंने एक्सकोड (व्यू-आधारित एप्लिकेशन - आईपैड के लिए) पर एक नई परियोजना भी बनाई है और केवल नए प्रोजेक्ट व्यू कंट्रोलर में UIWebView जोड़ दिया है। दोबारा ... एचटीएमएल 5-वीडियो वाली साइट लोड करना कभी-कभी दुर्घटना की ओर जाता है और कभी-कभी नहीं।
से "नया परियोजनाओं" ViewController (कार्यान्वयन) कोड:
@interface WebViewTestViewController : UIViewController <UIWebViewDelegate> {
UIWebView *myWebView;
}
@property (nonatomic, retain) UIWebView *myWebView;
उपकरण लॉग:
Exception Type: EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x00000098
Crashed Thread: 0
Thread 0 Crashed:
0 WebCore 0x34c7d09e WebCore::RenderLayer::clippingRoot() const + 110
1 WebCore 0x34c7cf2a WebCore::RenderLayer::childrenClipRect() const + 26
2 WebCore 0x34c7ce0c WebCore::RenderWidget::setWidgetGeometry(WebCore::IntRect const&) + 40
3 WebCore 0x34c5e0f8 WebCore::RenderWidget::updateWidgetPosition() + 320
4 WebCore 0x34ba0170 WebCore::RenderView::updateWidgetPositions() + 144
5 WebCore 0x34b97d16 WebCore::FrameView::performPostLayoutTasks() + 202
6 WebCore 0x34b8a6c0 WebCore::FrameView::layout(bool) + 2116
7 WebCore 0x34bc5244 WebCore::FrameView::forceLayout(bool) + 4
8 WebKit 0x302c0c24 -[WebHTMLView layoutToMinimumPageWidth:height:maximumPageWidth:adjustingViewSize:] + 136
9 WebKit 0x302c0b8e -[WebHTMLView layout] + 18
10 WebKit 0x302c26f2 -[WebHTMLView(WebInternal) _layoutIfNeeded] + 50
11 WebKit 0x302c2622 -[WebHTMLView(WebInternal) _web_layoutIfNeededRecursive] + 14
12 WebKit 0x302c251e -[WebHTMLView(WebPrivate) viewWillDraw] + 50
13 CoreFoundation 0x3581dfc0 -[NSObject(NSObject) performSelector:] + 12
14 CoreFoundation 0x35826d4a -[NSArray makeObjectsPerformSelector:] + 382
15 WebCore 0x34bb000c -[WAKView viewWillDraw] + 24
16 CoreFoundation 0x3581dfc0 -[NSObject(NSObject) performSelector:] + 12
17 CoreFoundation 0x35826d4a -[NSArray makeObjectsPerformSelector:] + 382
18 WebCore 0x34bb000c -[WAKView viewWillDraw] + 24
19 CoreFoundation 0x3581dfc0 -[NSObject(NSObject) performSelector:] + 12
20 CoreFoundation 0x35826d4a -[NSArray makeObjectsPerformSelector:] + 382
21 WebCore 0x34bb000c -[WAKView viewWillDraw] + 24
22 CoreFoundation 0x3581dfc0 -[NSObject(NSObject) performSelector:] + 12
23 CoreFoundation 0x35826d4a -[NSArray makeObjectsPerformSelector:] + 382
24 WebCore 0x34bb000c -[WAKView viewWillDraw] + 24
25 WebKit 0x302c24cc -[WebView(WebPrivate) viewWillDraw] + 56
26 WebCore 0x34bafec0 WebCore::TileCache::prepareToDraw() + 36
27 WebCore 0x34bafe6e -[TileLayer display] + 26
28 QuartzCore 0x31079fb0 CALayerDisplayIfNeeded + 176
29 QuartzCore 0x3106f56e CA::Context::commit_transaction(CA::Transaction*) + 214
30 QuartzCore 0x3106f37c CA::Transaction::commit() + 184
31 QuartzCore 0x31092f96 CA::Transaction::observer_callback(__CFRunLoopObserver*, unsigned long, void*) + 46
32 CoreFoundation 0x3580ac52 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 10
33 CoreFoundation 0x3580aac6 __CFRunLoopDoObservers + 406
34 CoreFoundation 0x358020c4 __CFRunLoopRun + 848
35 CoreFoundation 0x35801c80 CFRunLoopRunSpecific + 224
36 CoreFoundation 0x35801b88 CFRunLoopRunInMode + 52
37 GraphicsServices 0x320c84a4 GSEventRunModal + 108
38 GraphicsServices 0x320c8550 GSEventRun + 56
39 UIKit 0x341dc322 -[UIApplication _run] + 406
40 UIKit 0x341d9e8c UIApplicationMain + 664
41 WebViewTest 0x00002c24 0x1000 + 7204
42 WebViewTest 0x00002bd8 0x1000 + 7128
- (void)viewDidLoad {
[super viewDidLoad];
self.myWebView = [[[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 768, 1004)] autorelease];
self.myWebView.backgroundColor = [UIColor whiteColor];
self.myWebView.scalesPageToFit = YES;
self.myWebView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);
self.myWebView.delegate = self;
[self.view addSubview: self.myWebView];
[self.myWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.gelbeseiten.de/129103114849"]]];
//More Sites with HTML5-Videos ...
//[self.myWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.gelbeseiten.de/129103746403"]]];
//[self.myWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.gelbeseiten.de/129105233646"]]];
}
- (void)viewDidUnload {
[super viewDidUnload];
self.myWebView = nil;
}
- (void)viewWillDisappear:(BOOL)animated {
[self.myWebView stopLoading];
}
- (void)dealloc {
myWebView.delegate = nil;
[myWebView release];
[super dealloc];
}
से "नया परियोजनाओं" ViewController (हेडर) कोड क्या कोई मुझे एक विचार दे सकता है?
अग्रिम धन्यवाद, फ्लोरियन
यह वास्तव में आईओएस 4.2.1 के साथ एक समस्या प्रतीत होता है। आईओएस 3.2.2 के साथ टेस्ट एक समस्या नहीं देते हैं। अगले आईओएस 4.3 के लिए बस रिलीज-नोट पढ़ें: "वेब - निश्चित समस्या जो कुछ भारी वेबसाइटों को लोड करने के बाद सफारी और अन्य ऐप्स को क्रैश कर देती है।" शायद समस्या आईओएस 4.3 – Florian
@ फ्लोरियन के साथ हल हो गई है आप सही हैं! आईओएस 4.3 के लिए एक्सकोड 3.2.6 में अपग्रेड करके समस्या हल हो गई। मैंने ऐप अपग्रेड को सिर्फ दो सप्ताह के लिए स्थगित कर दिया है ... –
ओह, मेरी गलती, इसे आईओएस 4.3 के लिए एक्सकोड 3.2.6 में हल नहीं किया गया था ... सिर्फ इसलिए कि मैं इसे खींचने के लिए बहुत उत्साहित था श्रीजीथ विजयमोहन द्वारा सुझाए गए अनुसार लोड किया गया। अंततः श्रीजीत विजयमोहन के सुझाव के माध्यम से समस्या का समाधान किया। धन्यवाद। –