

iOSアプリケーションからNSURLSessionを利用してクエリをPHPにGETし、レスポンス(HTML)をアプリケーション上のUIWebViewで表示したいと考えております。

PHPからのレスポンスはNSURLResponseの中にHTMLがテキストとして入ってると思うのですが、そのデータをUIWebViewに渡して表示するにはどのようにすればよいのでしょうか？


CC BY-SA 3.0
2014-12-29T13:15:15.763
2797
2014-12-29T16:29:10.587
5032
question
ios objective-c php
NSURLSessionでPHPにGETしてレスポンスをUIWebViewで表示


ぐぐったらでてきました。`UIWebView loadHTMLString:baseURL`でどうでしょう？

[code]

    [webView loadHTMLString:htmlString baseURL:[NSURL fileURLWithPath:path]];
    
[/code]


CC BY-SA 3.0
2014-12-29T13:17:50.100
2798
2014-12-29T13:17:50.100
845
2797
answer


`NSURLResponse`自体にはHTMLのテキストは入っていません。  
`NSURLSessionDataTask`に設定したコールバックの引数からデータが取得できます。

テキストのエンコーディングについては`NSURLResponse`から取得する必要があります。

[code]

    NSURL* url = [NSURL URLWithString:@"http://google.com/"];
    NSURLSessionConfiguration* config = [NSURLSessionConfiguration defaultSessionConfiguration];
    NSURLSession* session = [NSURLSession sessionWithConfiguration:config];
    
    NSURLSessionDataTask* task =
    [session dataTaskWithURL:url
           completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
    
             // エンコーディングを取得してテキストに変換
             CFStringEncoding encoding = CFStringConvertIANACharSetNameToEncoding((CFStringRef)[response textEncodingName]);
             NSString *html = [[NSString alloc] initWithData:data encoding:CFStringConvertEncodingToNSStringEncoding(encoding)];
    
             dispatch_async(dispatch_get_main_queue(), ^{
               // WebViewにHTMLを表示
               [webView loadHTMLString:html baseURL:[response URL]];
             });
           }];
    
    // ダウンロード開始
    [task resume];
    
[/code]

参考ページ: <http://chicketen.blog.jp/archives/1256068.html>


CC BY-SA 3.0
2014-12-29T16:29:10.587
2806
2014-12-29T16:29:10.587
3639
2797
answer