Best practice for offline website in iOS
This question can be pretty easily answered by looking at the first and best HTML5 overview book out right now... And the best part it is published under the CC license.
http://diveintohtml5.ep.io/offline.html <- is a whole chapter on cacheing webapps and is a great jumping off point for your application.
It's not difficult, and it's cutting edge, what's cooler than that.
If you are really serious about getting this application to work offline well then it really shouldn't be summarized beyond the link.
Although I do have more resources that were at the bottom of that chapter
Standards:
- Offline web applications in the HTML5 specification
Browser vendor documentation:
- Offline resources in Firefox
- HTML5 offline application cache, part of the Safari client-side storage and offline applications programming guide
Tutorials and demos:
- Gmail for mobile HTML5 series: using appcache to launch offline - part 1
- Gmail for mobile HTML5 series: using appcache to launch offline - part 2
- Gmail for mobile HTML5 series: using appcache to launch offline - part 3
- Debugging HTML5 offline application cache
- an HTML5 offline image editor and uploader application
- 20 Things I Learned About Browsers and the Web, an advanced demo that uses the application cache and other HTML5 techniques
You could download first an file that reflects the structure of the website images, css, htmls.
Then you parse this file and start download each file and save them to documents directory (you don't save in database because you could have big images and that will be slow you could save the paths of them). Afther thad just do an request to the local html.
Edit: You can catch the request in the webView delegate and see if it is internal or external
webView:shouldStartLoadWithRequest:navigationType: Sent before a web view begins loading content.
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
UIWebViewDelegate Protocol Reference