在IOS中使用html时出现奇怪的错误

时间:2013-08-29 13:32:10

标签: html ios uiwebview

在网页中实现网页视图时,我编码如下

 _testURLString = @"http://192.168.4.196/course/Course";
NSString *embedHTML = [NSString stringWithFormat:@"\
                       <html><head>\
                       <style type=\"text/css\">\
                       body {\
                       background-color: transparent;\
                       color: blue;\
                       }\
                       </style>\
                       </head><body style=\"margin:0\">\
                       <embed id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\" \
                       width=\"400\" height=\"700\"></embed>\
                       </body></html>"];
NSString *html = [NSString stringWithFormat:embedHTML, _testURLString, 400, 700];

UIWebView *videoView = [[UIWebView alloc] initWithFrame:frame];

videoView.backgroundColor = [UIColor clearColor];
[videoView loadHTMLString:html baseURL:nil];
[self.view addSubview:videoView];

警告X代码通过比

中警告的数据参数更多'%'转换

SRC = \ “%@ \”

我不知道该怎么办请帮帮我。

4 个答案:

答案 0 :(得分:1)

您正在使用stringWithFormat:,并且此方法应该替换另一个字符串的src=\"%@\",但您没有传递任何字符串。

它应该是这样的:

NSString *embedHTML = [NSString stringWithFormat:@"\
                   <html><head>\
                   <style type=\"text/css\">\
                   body {\
                   background-color: transparent;\
                   color: blue;\
                   }\
                   </style>\
                   </head><body style=\"margin:0\">\
                   <embed id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\" \
                   width=\"400\" height=\"700\"></embed>\
                   </body></html>", _testURLString]; //or something else

答案 1 :(得分:0)

width=\"400\" height=\"700\"编辑为width=\"%d\" height=\"%d\",因为您之后在HTML字符串的构建中传递了参数。

另外,正如0x7fffffff所说,如果您只是制作一个简单的字符串,那么将embedHTML写为@"your_string"而不是[NSString stringWithString:@"your_string"]; XCode现在警告这种冗余。

答案 2 :(得分:0)

您需要在此字符串中传递src (src=\"%@\")值。有关详细信息,请参阅最后一行

 NSString *embedHTML = [NSString stringWithFormat:@"\
                           <html><head>\
                           <style type=\"text/css\">\
                           body {\
                           background-color: transparent;\
                           color: blue;\
                           }\
                           </style>\
                           </head><body style=\"margin:0\">\
                           <embed id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\" \
                           width=\"400\" height=\"700\"></embed>\
                           </body></html>",_testURLString];     // Edited  

答案 3 :(得分:0)

你可以完全消除第二个格式化的字符串,因为它实际上没有做任何有价值的事情。此外,您从未在初始格式化字符串中添加URL的格式说明符和视频的宽度/高度。这是一个例子:

NSString *embedHTML = [NSString stringWithFormat:@"\
                       <html><head>\
                       <style type=\"text/css\">\
                       body {\
                       background-color: transparent;\
                       color: blue;\
                       }\
                       </style>\
                       </head><body style=\"margin:0\">\
                       <embed id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\" \
                       width=\"%i\" height=\"%i\"></embed>\
                       </body></html>",_testURLString,400,700];