所以在我的应用中,我使用以下代码嵌入了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,这就是
未知转义序列'/ 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>";
答案 0 :(得分:2)
虽然人性化的阅读,实际上在那里设置换行符,这基本上打破了你的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 :(得分:1)
以空格分隔的反斜杠和换行符
这就是说你需要知道的全部 - 在反斜杠之后你有一个空间。这与HTML无关,而是与预处理器有关 - 换行必须在反斜杠之后立即进行转义。
为避免绊倒此问题,您可以使用多行字符串:
NSString* embedHTML =
@"<html><head>"
"<style type=\"text/css\">"
// ... etc.
"</body></html>";
...或者只是从资源加载HTML而不是硬编码。
答案 2 :(得分:0)
尝试删除格式。将所有html放在一行。