我需要在我的 iOS 应用程序上制作一个离线浏览器,它允许以下操作:
当您有互联网连接(wifi、3g、4g...)时,您可以下载白天需要阅读的所有网页,然后在没有互联网连接时也可以浏览内容。我从 JSON 文件中导入数据。
我怎样才能做到这一点?
我需要在我的 iOS 应用程序上制作一个离线浏览器,它允许以下操作:
当您有互联网连接(wifi、3g、4g...)时,您可以下载白天需要阅读的所有网页,然后在没有互联网连接时也可以浏览内容。我从 JSON 文件中导入数据。
我怎样才能做到这一点?
如果您下载了数据,请将其保存到文档目录并检查是否没有互联网连接,然后从文档目录加载内容。
获取文档路径
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"]];