I have to display an .html file which needs highcharts.js, jquery.min.js in order to display a graph. I am planning to display the .html file in a UIWebView.
I saw that when the files(i.e. html, highcharts.js, jquery.min) are in the Application Bundle, I can use them like this--
aPath = [[NSBundle mainBundle] pathForResource:@"htmlfile" ofType:@"html"];
[self.graphWebView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:aPath isDirectory:NO]]];
Here, the "htmlFile" has the source like this -
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>TITLE</title>
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript" src="highcharts.js"></script>
<script type="text/javascript" src="htmlfile.js"></script>
<script type="text/javascript" src="global.js"></script>
</head>
<body>
<div id="wrapper">
<div id="container"></div>
</div>
</body>
</html>
So, in order to display the content in UIWebView, i just needed to make the .html file and .js files as Bundle Resources in Xcode's Build Phases Tab.
Problem:
How do display the .html file having the source like shown above when It is saved in the App's Sand Box?
Wat I tried:
1. I created a folder in the App SandBox like this--
NSArray *paths =
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES) ;
NSString aFolderPath = [(NSString)[paths objectAtIndex:0] stringByAppendingFormat:@"/%@",@"folder"];
if(![[NSFileManager defaultManager] isWritableFileAtPath:aFolderPath]){
[[NSFileManager defaultManager]createDirectoryAtPath:aFolderPath withIntermediateDirectories:NO attributes:nil error:nil];
}
2. Then I copied the html, js files in the App SandBox from the App Bundle like this--
NSString *aJs = [[NSBundle mainBundle] pathForResource:@"JSFile"
ofType:@"js"];
aJs = [NSString stringWithContentsOfFile:aGlobaljs encoding:NSUTF8StringEncoding error:nil];
NSString *aPath = [(NSString*)[paths objectAtIndex:0] stringByAppendingFormat:@"/folder/%@",@"JSFile.js"];
[aJs writeToFile:aPath atomically:YES encoding:NSUTF8StringEncoding error:nil];
Now all the needed files are in the SandBox Folder named "folder", so, I tried to open the saved html file in the UIWebView like this--
[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL
URLWithString:pathToHtmlFileinDocumentsDic relativeToURL:[NSURL
URLWithString:aFolderPath]]]];
This does not work.
See Question&Answers more detail:
os