Вставить Youtube видео предупреждения - PullRequest
0 голосов
/ 09 января 2012

Итак, в мое приложение я вставил видео с YouTube, используя следующий код:

- (void)embedYouTube:(NSString*)url frame:(CGRect)frame {  
    NSString* embedHTML = @"\ 
    <html><head>\ 
    <style type=\"text/css\">\ 
    body {\ 
        background-color: transparent;\ 
    color: white;\ 
    }\ 
    </style>\ 
    </head><body style=\"margin:0\">\ 
    <embed id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\" \ 
    width=\"%0.0f\" height=\"%0.0f\"></embed>\ 
    </body></html>";  

    NSString* html = [NSString stringWithFormat:embedHTML, url, frame.size.width, fra    me.size.height];  
    if(videoView == nil) {  
        videoView = [[UIWebView alloc] initWithFrame:frame];
        videoView.delegate = self;
        [self.view addSubview:videoView];  
    }  
    [videoView loadHTMLString:html baseURL:nil];  
}

Отформатировано точно так, как показано выше. Но я получаю 11 предупреждений, все говорят:

Обратная косая черта и Новая строка, разделенные пробелом

Итак, мой вопрос, как я могу это исправить? Я не очень знаком с HTML, поэтому я не знаю, что я могу и не могу с этим сделать. Заранее спасибо

Изменить: Я перенес весь HTML в одну строку, и это уменьшило количество моих предупреждений с 11 до 1, что говорит

Неизвестная escape-последовательность '/ x20'

и вот как выглядит код с этой ошибкой:

    NSString* embedHTML = @"\ <html><head>\ <style type=\"text/css\">\ body {\ background-color: transparent;\ color: white;\ }\ </style>\ </head><body style=\"margin:0\">\ <embed id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\" \ width=\"%0.0f\" height=\"%0.0f\"></embed>\ </body></html>";  

Ответы [ 3 ]

2 голосов
/ 09 января 2012

Хотя удобное для чтения чтение, фактически вставляя в него разрывы строк, существенно нарушает вашу строку NSString, также убедитесь, что вы не пропускаете новые строки, не сработает, попробуйте следующее:

NSString* embedHTML = @"<html><head><style type=\"text/css\">body { background-color: transparent; color: white;}</style></head><body style=\"margin:0\"><embed id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\" width=\"%0.0f\" height=\"%0.0f\"></embed></body></html>";  

NSString* html = [NSString stringWithFormat:embedHTML, url, frame.size.width, fra    me.size.height];  
if(videoView == nil) {  
    videoView = [[UIWebView alloc] initWithFrame:frame];
    videoView.delegate = self;
    [self.view addSubview:videoView];  
}  
[videoView loadHTMLString:html baseURL:nil];  
1 голос
/ 09 января 2012

Обратная косая черта и Новая строка, разделенные пробелом

Это говорит о том, что вам нужно знать - у вас есть пробел где-то после обратной косой черты. Это связано не с HTML, а с препроцессором - перевод строки должен быть сразу после обратной косой черты, чтобы его можно было экранировать.

Чтобы не запутаться в этой проблеме, вы можете использовать многострочную строку:

NSString* embedHTML =  
    @"<html><head>"
     "<style type=\"text/css\">"
     // ... etc.
     "</body></html>";

... или просто загрузите HTML из ресурсов вместо жесткого его кодирования.

0 голосов
/ 09 января 2012

Попробуйте удалить форматирование. Поместите все HTML в одну строку.

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