Używanie pliku .html, .js zapisanego w piaskownicy (katalogu Dokumenty) aplikacji iOS, dzięki czemu mogę otworzyć plik html również w trybie offline
Muszę wyświetlić plik .html, który potrzebuje pliku highcharts.js, jquery.min.js, aby wyświetlić wykres. Planuję wyświetlić plik .html w UIWebView.
Widziałem, że gdy pliki (np. Html, highcharts.js, jquery.min) znajdują się w pakiecie aplikacji, mogę ich używać w ten sposób -
aPath = [[NSBundle mainBundle] pathForResource:@"htmlfile" ofType:@"html"]; [self.graphWebView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:aPath isDirectory:NO]]];
W tym miejscu „htmlFile” ma takie źródło -
<!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>
Tak więc, aby wyświetlić zawartość w UIWebView, potrzebowałem tylko plików .html i .js jakoZasoby pakietu w zakładce Fazy budowania Xcode.
Problem:
Jak wyświetlić plik .html mający źródło, jak pokazano powyżej, gdy jest zapisany w piaskownicy aplikacji?
Wat Próbowałem:
1 Stworzyłem folder w aplikacji SandBox w ten sposób -
NSArray * paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
NSStringaFolderPath = [(NSString) [paths objectAtIndex: 0] stringByAppendingFormat: @ "/% @", @ "folder"];
if(![[NSFileManager defaultManager] isWritableFileAtPath:aFolderPath]){
[[NSFileManager defaultManager] createDirectoryAtPath: aFolderPath withIntermediateDirectories: NO atrybuty: nil error: nil]; }
2. Następnie skopiowałem pliki html, js w aplikacji SandBox z pakietu aplikacji w ten sposób -
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];
Teraz wszystkie potrzebne pliki znajdują się w folderze SandBox o nazwie „folder”, więc próbowałem otworzyć zapisany plik html w UIWebView w ten sposób -
[self.webView loadRequest: [NSURLRequest requestWithURL: [NSURL URLWithString: pathToHtmlFileinDocumentsDic relativeToURL: [NSURL URLWithString: aFolderPath]]]];
To nie działa.