我从服务器下载zip文件。在NSCachesDirectory我有html文件,我想知道如何使用他们的源文件运行html文件,我已粘贴我的代码。请帮帮我
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *documentsPath = [[paths objectAtIndex:0] stringByAppendingPathComponent:[NSString stringWithFormat:@"/Lesson-file/Lesson%d",[str_lsn_id integerValue]]];
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"story_html5" ofType:@"html" inDirectory:documentsPath]];
[lsn_play_webview loadRequest:[NSURLRequest requestWithURL:url]];
答案 0 :(得分:1)
这是一种方法。从您说过您有源文件js
和css
的上下文中。
此问题可能是因为在运行时这些文件未加载或编译器无法找到它们的位置。
例如:
<!--For CSS file html tag is-->
<link rel="stylesheet" href="styles.css">
<!--For JS file html tag is-->
<script type="text/javascript" src="exmample.js"></script>
因此您必须手动提供这些文件的位置。
查看此处的标记href
和src
。这些是资源文件的位置,当您的html页面加载到内存中时,这些资源文件将在运行时需要。
如果这些文件位于同一目录中,则无需提供网址
<强>建议:强>
建议您在此处提供文件位置网址。编辑您的html文件并添加url标记的标记。
示例代码:
<html> <head>
<script type="text/javascript" src="#JS-FILE1#"></script>
<link rel="stylesheet" href="#CSS-FILE1#">
</head> <body> </body>
</html>
您可以看到我已使用标记#JS-FILE1#
和#CSS-FILE1#
替换了文件。现在我们将在加载html文件之前用实际url替换这些标记。
NSString *path = [[NSBundle mainBundle] pathForResource:@"filename" ofType:@"html"];
NSString *html = [[NSString alloc] initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
// Location of Resource files
NSString *jsFilePath = [[NSBundle mainBundle] pathForResource:@"exmample" ofType:@"js"];
NSString *cssFilePath = [[NSBundle mainBundle] pathForResource:@"stylesheet" ofType:@"css"];
html = [html stringByReplacingOccurrencesOfString:@"#JS-FILE1#" withString:jsFilePath];
html = [html stringByReplacingOccurrencesOfString:@"#CSS-FILE1#" withString:cssFilePath];
放置断点并调试输出字符串。 NSLog
此字符串将其复制并创建临时文件 - 在浏览器中打开它以交叉检查所有资源是否已加载?
如果没有,请检查资源文件的URL是否正确。