views:

1012

answers:

2

I have an app that's worked since version 2.0 of the SDK where I create and add a UIWebView and then load the URL of an .mov to play a movie. Ever since the early version of the 4.0 beta up until the 4.0 GM this has stopped working. When I load a movie now I get the following error: :Plug-in handled load" and the movie never displays.

Is this a known issue? Am I doing something wrong in 4.0?

+1  A: 

I figured this out. It appears to be an issue with iOS4 not being backward compatible with a UIWebView created with 'init' rather than 'initWithFrame'. In 2.0 - 3.1.3, you could only show video in a UIWebview as full screen. I think this is why it didn't matter if you called 'init' -- the movie player would kick in and go fullscreen. However, in 3.2 and higher you can now inline video in a UIWebView so you have to call initWithFrame and give it something like [[UIScreen mainScreen] bounds] so there's a visible view. Not quite sure if this is bull or not but seems to be the case.

rforte
To be a bit more precise, the video will only play if the frame of the UIWebView has a nonzero area. I had the same issue with a UIWebView created using `[[UIWebView alloc] initWithFrame:CGRectZero]`. This is especially strange, since the webview doesn't actually need to be visible. The video will play even if the webView is never added to the view hierarchy, as long as its frame is nonzero.
cduhn
This is correct. Even if you call <code>[[UIWebView allow] initWithFrame:CGRectMake(0,0,1,1)]</code> the video will display just fine and when you click "Done" the UIWebView will 'appear' to have been dismissed. Otherwise, I'm not sure if there's a way to detect if the video has finished so that you can hide/remove the UIWebView. Otherwise, you see a white UIWebView with a play icon in the middle.
rforte
I thought I was the only one with this problem. But even with this workaround it doesn't work for me. I'm already doing initWithFrame but I get an alertView "This movie could not be played" in 3.2 and prior versions it runs fine. Only 4.0 doesn't
hecta
A: 

"This movie could not be played" your implementation or?

Alejandro