2011-01-03 4 views
0
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* [email protected]""; 
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は自分のリソースフォルダに保存されているローカルイメージです。iphone sdkのwebviewにhtmlをアップロードするときに問題が発生しました

ここで問題となるのは、私がwebviewに渡したサーバのリンクからbaseurlとしてバックグラウンドイメージを取得していますが、リソースに格納されているfooter.pngとdetails_back.pngのイメージは表示されません。

リソースバンドルをbaseurlとして使用すると、サーバーリンクからバックグラウンドイメージが表示されません。

誰でも私にこの問題を取り除くための提案をしてください。

すべての男のおかげで、 Monish

+0

HTMLを作成するためのhttps://github.com/karelia/KSHTMLWriterをご覧ください。 –

答えて

2

まずパフォーマンス上の理由から文字列を作成するときは、NSMutableStringを使用する必要があります。

htmlのイメージsrcパスには、リソースバンドルへの完全なURLパスが必要です。リソースのURLパスを取得するには次のようにします。

[myCustomBody replaceOccurrencesOfString:@"footer.png" 
           withString:[footerURL absoluteString] 
           options:NSCaseInsensitiveSearch 
            range:NSMakeRange(0, [myCustomBody length])]; 
:あなたは画像のURLを取得し、カスタムの体を構築したら、あなたは画像の完全なURLでfooter.pngを置き換えます

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

+0

@Black Frog:地元の画像が表示されていないのに、私はあなたの提案イベントごとに試しました。他のアイデアで助けてください。 –

+0

私はそれを投稿する前にコードをテストしました。あなたのコードのコピーを投稿して、それを見てみましょう。 –

+0

私はコードを編集していたので、間違いを犯した箇所を確認してください。 –

0

リソースバンドルをベースURLとして使用する唯一の結果が、背景イメージがない場合は、<body>タグと同じように、hrefプロパティを置き換えることができます。

関連する問題