Возникла проблема при загрузке HTML в веб-просмотр в iphone SDK - PullRequest
0 голосов
/ 03 января 2011
 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:loadUrl]];

 NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
 NSMutableString *returnString = [[NSMutableString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
 NSString *absString = [[NSBundle mainBundle]pathForResource:@"footer" ofType:@"png"];
 NSURL *footerURL = [NSURL fileURLWithPath:absString];
    NSString* appendString=@"";
 appendString = [appendString stringByAppendingString:@"<body>"];
 appendString =[appendString stringByAppendingString:@"<table background='footer.png' width='320' height='45' style='background-repeat:no-repeat'>"];
 appendString =[appendString stringByAppendingString:@"<tr>"];
 appendString =[appendString stringByAppendingString:@"<td align='left' width='57' height='31' style='padding: 6px 0 0 0' ><a href='/map/'><img src='details_Back.png'/></a></td>"];
 appendString =[appendString stringByAppendingString:@"<td align='left' valign='middle' style='padding: 0 0 0 65px; font-family:Helvetica; font-size:21px ; font-weight:bold ; color:#FFF'>Details</td>"];
 appendString =[appendString stringByAppendingString:@"</tr>"];
 appendString =[appendString stringByAppendingString:@"</table>"];

 appendString =[appendString stringByAppendingString:@"<br>"];
 //returnString = [returnString stringByReplacingOccurrencesOfString:@"<body>" withString:appendString];
 [returnString replaceOccurrencesOfString:@"<body>"
          withString:appendString
          options:NSCaseInsensitiveSearch
            range:NSMakeRange(0, [returnString length])];

 [returnString replaceOccurrencesOfString:@"footer.png"
          withString:[footerURL absoluteString]
          options:NSCaseInsensitiveSearch
            range:NSMakeRange(0, [returnString length])];

 printf("\n return string :%s",[returnString UTF8String]);
 [myWebView loadHTMLString:returnString baseURL:[NSURL URLWithString:@"http://abc.api.abcdef.com"]];

здесь, в приведенном выше коде, footer.png и details_back.png являются локальными изображениями, хранящимися в моей папке ресурсов.

Здесь проблема в том, что я получаю фоновое изображение по ссылке сервера Iперешел в веб-просмотр как baseurl, но изображения footer.png и details_back.png, которые были сохранены в ресурсе, не отображаются.

если я использую комплект ресурсов в качестве baseurl, то не отображается фоновое изображение изссылка на сервер.

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

спасибо всем, Monish.

Ответы [ 2 ]

2 голосов
/ 03 января 2011

Прежде всего, вы должны NSMutableString при построении строки по соображениям производительности.

Путь src к изображению в вашем html требует полного URL-пути к комплекту ресурсов. Чтобы получить URL-адрес ресурса, выполните следующие действия:

    NSString *footerPath = [[NSBundle mainBundle] 
                        pathForResource:@"footer" 
                        ofType:@"png"];
NSURL *footerURL = [NSURL fileURLWithPath:footerPath];

Как только вы получите URL-адрес изображения и создадите свое собственное тело, вы замените footer.png полным URL-адресом изображения:

    [myCustomBody replaceOccurrencesOfString:@"footer.png"
                              withString:[footerURL absoluteString]
                                 options:NSCaseInsensitiveSearch
                                   range:NSMakeRange(0, [myCustomBody length])];
0 голосов
/ 03 января 2011

Если единственным следствием использования комплекта ресурсов в качестве базового URL является отсутствие фонового изображения, вы можете попробовать заменить его свойство href так же, как вы делали это с тегом <body>.

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