3

我需要在我的 iOS 应用程序上制作一个离线浏览器,它允许以下操作:

当您有互联网连接(wifi、3g、4g...)时,您可以下载白天需要阅读的所有网页,然后在没有互联网连接时也可以浏览内容。我从 JSON 文件中导入数据。

我怎样才能做到这一点?

4

1 回答 1

0

如果您下载了数据,请将其保存到文档目录并检查是否没有互联网连接,然后从文档目录加载内容。

获取文档路径

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentPath = [paths objectAtIndex:0];

如果你有一个 NSDictionary:

NSString *path = [NSString stringWithFormat:@"%@",[paths objectAtIndex:0]];
NSDictionary *dict = [[NSDictionary alloc] init];
[dict writeToFile:[path stringByAppendingPathComponent:@"myOfflineData"] atomically:NO];

并得到它:

NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:[path stringByAppendingPathComponent:@"myOfflineData"]];

或者用 NSString 等保存。

赶上你的例子:

NSData *jsonData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http:......."]];
id jsonObjects = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:nil]; jsonResults = [jsonObjects objectForKey:@"nodes"];
[jsonData writeToFile:[path stringByAppendingPathComponent:@"myOfflineData"] atomically:NO];

如果您离线:

NSData *jsonData = [[NSData alloc] initWithContentsOfFile:[path stringByAppendingPathComponent:@"myOfflineData"]];
于 2013-07-23T08:12:14.263 回答