スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
このエントリーをはてなブックマークに追加

[iOS]「CSS/JSファイルを取得し、HTMLに適応する」 step1 :ファイルをダウンロードする

今回「フロー*1表示が遅い」という話が持ち上がり、その解消のためにUIWebViewにロードしているCSSやJSファイルをログイン時に取得しようという話になりました。
フロー表示遅延問題 
(*1 : CSSとJavaScriptで生成した画像のような表示をするとき若干の読み込みラグが発生します)

という理由でCSS/JSファイルを取得し、UIWebViewに読み込むデータに対して適応する操作を行います。

そのためには、まずファイルをダウンロードして、デバイスに保存する必要があります。
参考URL:[MetaArt]iPhoneネットワークプログラミング(ファイルダウンロード)

URL先を参考に作成しました。
一応ソースを貼り付けます。
//ヘッダファイル
@interface networkViewController : UIViewController {
NSFileHandle *file; //ファイルハンドル用
NSString *filePath; //fileの保存先を指定する
}
@end


//メソッドファイル
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
NSLog(@"completed!");
}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
if (file == nil) {
NSFileManager *fm = [NSFileManager defaultManager];
[fm createFileAtPath:filePath contents:[NSData data] attributes:nil];
file = [[NSFileHandle fileHandleForWritingAtPath:filePath] retain];
}
[file writeData:data];
}

- (void)viewDidLoad {
[super viewDidLoad];

//対象ファイルのあるURL
NSString *url = [NSString stringWithString:
@"http://www.ritsumei.ac.jp/acd/mr/lib/images/calender/kin.pdf"];
//保存するディレクトリパス
NSString *directoryPath = [[NSHomeDirectory()
stringByAppendingPathComponent:@"Documents"] retain];
//対象ファイルのファイル名
NSString *fileName = [url lastPathComponent];
//保存先のファイルパス
filePath = [[[directoryPath stringByAppendingPathComponent:fileName]
stringByStandardizingPath] retain];
NSLog(@"%@", filePath);

NSURLRequest *request = [ NSURLRequest requestWithURL:[NSURL URLWithString:url]];
[ NSURLConnection connectionWithRequest: request delegate: self ];
}


あとはログに吐きだされたフォルダをFinderでたどってみてください。
Documentsフォルダの中にちゃんとデータが格納されているはずです。
このエントリーをはてなブックマークに追加

コメントの投稿

非公開コメント

Translation


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。
プロフィール

チーズくん

Author:チーズくん
個人的メモをただ羅列しています。
twitter:@cheese1038

バロメーター
最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。