webView: shouldStartLoadWithRequest: navigationType: не вызывается веб-набор с видеосвязью YouTube - PullRequest
4 голосов
/ 23 сентября 2010

Я использую webkit для отображения видео на YouTube на iOS4. При нажатии на видео он должен автоматически запустить проигрыватель и отобразить видео, но происходит то, что видео воспроизводится в плеере, но в веб-просмотре. То, что я хочу сделать, это сделать альфа 0 webview, поэтому я использую делегат

      webView:shouldStartLoadWithRequest:navigationType:

Но этот делегат не вызывается при нажатии на видео для его запуска. В противном случае он вызывается, когда само первое веб-представление запускается с URL.

EDIT:

- (void)loadView {
[super loadView];

activityIndicatorView = [[ActivityIndicator alloc] init];

web = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
web.delegate = self;
NSString *videoUrl = @"http://www.youtube.com/watch?v=";
NSString *fullVdoUrl = [videoUrl stringByAppendingFormat:_videoUrl];

NSString *urlAddress = [NSString stringWithFormat:fullVdoUrl];   
NSURL *url = [NSURL URLWithString:urlAddress];           //Create a URL object.
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];            //URL Requst Object
[web loadRequest:requestObj];              //Load the request

[self.view addSubview:web];
[web release];

}

- (void)webViewDidFinishLoad:(UIWebView *)webView {
[activityIndicatorView.view removeFromSuperview];
web.alpha = 1.0;
}

- (void)webViewDidStartLoad:(UIWebView *)webView {     
[self.view addSubview:activityIndicatorView.view];
}

-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
web.alpha = 0.0;
return YES;
}

Кто-нибудь может помочь? Это действительно срочно.

Спасибо заранее.

1 Ответ

1 голос
/ 27 сентября 2010
- (void)loadView {
[super loadView];

activityIndicatorView = [[ActivityIndicator alloc] init];

web = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
web.delegate = self;
NSString *videoUrl = @"http://www.youtube.com/watch?v=";
NSString *fullVdoUrl = [videoUrl stringByAppendingFormat:_videoUrl];

NSString *urlAddress = [NSString stringWithFormat:fullVdoUrl];   
NSURL *url = [NSURL URLWithString:urlAddress];           //Create a URL object.
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];            //URL Requst Object
[web loadRequest:requestObj];              //Load the request

[self.view addSubview:web];
[web release];

}

здесь:

[self.view addSubview: web];

self.view равно nil, и добавление представления к nil не сохранит ваше веб-представление.

[веб-релиз];

Вы открываете веб-просмотр, который имеет счет 0. 0. 1014 *

попробовать

self.view = web;
[web release];

это будет работать для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...