Gif画像をNSDataオブジェクトにダウンロードしました(NSDataオブジェクトの内容を確認しましたが、確実に入力されています)。次に、その画像をUIWebViewにロードします。私は以下を試しました:
[webView loadData:imageData MIMEType:@"image/gif" textEncodingName:nil baseURL:nil];
しかし、UIWebViewが空白になります。同じURLから画像を直接読み込むことは問題なく機能します。
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:imageUrl]];
[imageView loadRequest:request];
TextEncodingNameを何かに設定する必要がありますか、それとも何か間違ったことをしていますか?
進行状況をユーザーに報告できるように画像を手動でロードしたいのですが、これはアニメーションGIFなので、完了したらUIWebViewに表示します。
編集:おそらく、画像をHTMLでラップする必要がありますか?ディスクに保存せずにこれを行う方法はありますか?
PNG( "image/png")、JPG( "image/jpeg")、およびGIF( "image/gif")でコードをテストしましたが、期待どおりに機能します。
[webView loadData:imageData MIMEType:imageMIMEType textEncodingName:nil baseURL:nil];
さて、あなたのアプリの何が問題になっていますか?
UIWebViewに画像を読み込もうとはしませんでしたが、グーグル検索で表示されます。画像の文字列には適切なパスが必要で、URLのように見えると思います
NSString *imagePath = [[NSBundle mainBundle] resourcePath];
imagePath = [imagePath stringByReplacingOccurrencesOfString:@"/" withString:@"//"];
imagePath = [imagePath stringByReplacingOccurrencesOfString:@" " withString:@"%20"];
NSString *HTMLData = @"
<h1>Hello this is a test</h1>
<img src="sample.jpg" alt="" width="100" height="100" />";
[webView loadHTMLString:HTMLData baseURL:[NSURL URLWithString: [NSString stringWithFormat:@"file:/%@//",imagePath]]];
詳細については、こちらをご覧ください: ローカルファイルをUIWebViewにロードしています
UIImage *screenshot= [UIImage imageAtPath:
[[NSBundle mainBundle] pathForResource:@"MfLogo_aboutus" ofType:@"png"]];
NSData *myData = UIImagePNGRepresentation(screenshot);
[vc addAttachmentData:myData mimeType:@"image/png" fileName:@"logo.png"];
同じ問題が発生しましたが、どこか別の場所でbaseUR
Lパラメーターに値を指定する必要があることがわかりました。エンコーディングセットもありました:
textEncodingName:@"UTF-8" baseURL:[NSURL URLWithString:@"http://localhost/"]];
nil
パラメータにbaseURL
があると、ロードされませんでした。基本的に無関係なものをそこに置くことで、MSドキュメントはすべて機能しました。
Webビューにデリゲートを割り当てて、メソッドを実装してみてください。
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
発生しているエラーをより具体的に確認するには。呼び出されない場合は、次のメソッドを実装します。
- (void)webViewDidFinishLoad:(UIWebView *)webView
同様に、何かが発生していることを確認するために、そうでない場合はUIWebView
に問題がある可能性があります(webView:shouldStartLoadWithRequest:navigationType:
からNO
を返さなかったと仮定します)
このコードを試してください
// 1) Get: Get string from “outline.plist” in the “DrillDownSave”-codesample.
savedUrlString = [item objectForKey: @"itemUrl"];
// 2) Set: The url in string-format, excluding the html-appendix.
NSString *tempUrlString = savedUrlString;
// 3) Set: Format a url-string correctly. The html-file is located locally.
NSString *htmlFile = [[NSBundle mainBundle] pathForResource:tempUrlString ofType:@”html”];
// 4) Set: Set an “NSData”-object of the url-sting.
NSData *htmlData = [NSData dataWithContentsOfFile:htmlFile];
// 5. Gets the path to the main bundle root folder
NSString *imagePath = [[NSBundle mainBundle] resourcePath];
// 6. Need to be double-slashes to work correctly with UIWebView, so change all “/” to “//”
imagePath = [imagePath stringByReplacingOccurrencesOfString:@"/" withString:@"//"];
// 7. Also need to replace all spaces with “%20″
imagePath = [imagePath stringByReplacingOccurrencesOfString:@" " withString:@"%20"];
// Load: Loads the local html-page.
[webView loadData:htmlData MIMEType:@"text/html" textEncodingName:@"UTF-8" baseURL:[NSURL URLWithString:[NSString stringWithFormat:@"file:/%@//",imagePath]]];
NSString *pathForFile = [[NSBundle mainBundle] pathForResource: @"fireballscopy" ofType: @"gif"];
NSData *dataOfGif = [NSData dataWithContentsOfFile: pathForFile];
[Web_View loadData:dataOfGif MIMEType:@"image/gif" textEncodingName:nil baseURL:nil];
別の方法は次のとおりです。
ダウンロードした画像をドキュメントフォルダに保存します。次に、その画像のURLを取得します。次に、IMGSRCタグでその画像のURLを使用して簡単なhtmlファイルを記述します。
NSLog(@"url=%@", fileURL); // fileURL is the image url in doc folder of your app
//get the documents directory:
NSArray *paths = NSSearchPathForDirectoriesInDomains
(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
//make a file name to write the data to using the documents directory:
NSString *fileName = [NSString stringWithFormat:@"%@/toOpen.html",
documentsDirectory];
//create simple html file and format the url into the IMG SRC tag
NSString *content = [NSString stringWithFormat:@"<html><body><img src=%@></body></html>",fileURL];
//save content to the documents directory
[content writeToFile:fileName
atomically:NO
encoding:NSStringEncodingConversionAllowLossy
error:nil]; // now we have a HTML file in our doc
// open the HTML file we wrote in the webview
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"life.html"];
NSURL *url = [NSURL fileURLWithPath:filePath];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[yourWebView loadRequest:request];