UIWebView and local css file
I want to style a web page meant for the desktop so that it is presentable on a UIWebView on iPhone. I do not have access to the web server from which the pages originate. I would like to do this by changing the href attribute of the <link> stylesheet element programmatically.
I do the following with my IBOutlet UIWebView *webView.
Am I barking up the wrong tree?
You can load CSS from local project directory
NSString *path = [[NSBundle mainBundle] bundlePath]; NSURL *baseURL = [NSURL fileURLWithPath:path]; [webView loadHTMLString:htmlString baseURL:baseURL];
detail info check this site : http://iphoneincubator.com/blog/windows-views/uiwebview-revisited
Unfortunately UIWebView doesn't provide an API for intercepting and modifying the requests that it makes while loading a resource. This means that any approach you try will be hack-ish to a certain extent.
The first approach I would try is:
- Provide your own UIWebViewDelegate delegate on the view.
- Implement -webView:shouldStartLoadWithRequest:navigationType: and return NO when you spot the CSS requests being made.
Your code should work, if you choose index 0 of the found elements:
You missed 
If you (like me) only use a html snippet (not a complete web page) you need to add your local css file in the header of the html snippet.
I therefore define a html header like this:
let htmlHeader = "<html> \n <head> \n <link href=\"default.css\" rel=\"stylesheet\" type=\"text/css\" /> \n </head> \n <body> \n"
and a footer like this:
let htmlFooter = "</body> \n </html>"
Then find the baseURL for the css like this:
let baseURLForCss = Bundle.main.url(forResource: "default", withExtension: "css")
And load the html snippet with your own css like this:
webView.loadHTMLString(String.init(format: "%@%@&@", htmlHeader, htmlSnippet, htmlFooter), baseURL: baseURLForCss)