如何在iOS中为HTML、CSS和Javascript页面制作包装器
我正在构建一个应用程序,我想在其中显示一个本地存储的网页(HTML+CSS+JS)。我尝试了很多方法,但是页面没有响应java脚本。下面是我尝试过的代码部分 尝试:1如何在iOS中为HTML、CSS和Javascript页面制作包装器,javascript,iphone,ios,css,hybrid-mobile-app,Javascript,Iphone,Ios,Css,Hybrid Mobile App,我正在构建一个应用程序,我想在其中显示一个本地存储的网页(HTML+CSS+JS)。我尝试了很多方法,但是页面没有响应java脚本。下面是我尝试过的代码部分 尝试:1 //html NSString *actualPageMarkupFilePath = [[NSBundle mainBundle] pathForResource:@"inex" ofType:@"html"]; NSData *actualPageMarkupData = [NSData dataWithContentsOfF
//html
NSString *actualPageMarkupFilePath = [[NSBundle mainBundle] pathForResource:@"inex" ofType:@"html"];
NSData *actualPageMarkupData = [NSData dataWithContentsOfFile:actualPageMarkupFilePath];
NSString *actualPageMarkup = [[NSString alloc]initWithData:actualPageMarkupData encoding:NSASCIIStringEncoding];
// load css styles
NSString *cssPath = [[NSBundle mainBundle] pathForResource:@"style" ofType:@"css"];
NSData *cssData = [NSData dataWithContentsOfFile:cssPath];
NSString *cssString = [[NSString alloc] initWithData:cssData encoding:NSASCIIStringEncoding];
// load js
NSString *jsPath1 = [[NSBundle mainBundle] pathForResource:@"myzepto" ofType:@"js"];
NSData *jsData1 = [NSData dataWithContentsOfFile:jsPath1];
NSString *jsString1 = [[NSString alloc] initWithData:jsData1 encoding:NSASCIIStringEncoding];
NSString *jsPath2 = [[NSBundle mainBundle] pathForResource:@"zepto.min" ofType:@"js"];
NSData *jsData2 = [NSData dataWithContentsOfFile:jsPath2];
NSString *jsString2 = [[NSString alloc] initWithData:jsData2 encoding:NSASCIIStringEncoding];
// compose full html page
NSString *pageContent = [NSString stringWithFormat:@"%@%@%@%@", cssString, jsString1, jsString2, actualPageMarkup];
[self.HTMLWebView loadHTMLString:pageContent baseURL:[NSURL URLWithString:@""]];
尝试:2
NSString *filePath =
[[NSBundle mainBundle] pathForResource:@"inex" ofType:@"html"];
NSData *htmlData = [NSData dataWithContentsOfFile:filePath];
if (htmlData) {
NSBundle *bundle = [NSBundle mainBundle];
NSString *path = [bundle bundlePath];
NSString *fullPath = [NSBundle pathForResource:@"inex"
ofType:@"html" inDirectory:path];
[_HTMLWebView loadRequest:[NSURLRequest requestWithURL:
[NSURL fileURLWithPath:fullPath]]];
}
尝试:3
NSString *htmlFile = [[NSBundle mainBundle] pathForResource:@"inex" ofType:@"html"];
NSData *htmlData = [NSData dataWithContentsOfFile:htmlFile];
[_HTMLWebView loadData:htmlData MIMEType:@"text/html" textEncodingName:@"UTF-8" baseURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] resourcePath]]];
尝试:4
NSURL *urlPageFile = [[NSBundle mainBundle] URLForResource:@"inex" withExtension:@"html"];
NSURLRequest *webPageRequest = [[NSURLRequest alloc] initWithURL:urlPageFile];
[_HTMLWebView loadRequest:webPageRequest];
[webPageRequest release];
创建webView并将HTML加载到。
还将JS和CSS文件复制到项目文件夹中。检查html文件中指向JS和CSS文件的路径。您应该使用html、CSS等将目录复制到带有选项的项目中
“将项目复制到目标组的文件夹(如果需要)”
“为任何添加的文件夹创建文件夹引用” 并使用以下代码将页面加载到webview中:
NSString* path = [[NSBundle mainBundle] pathForResource:@"index.html"
ofType:nil
inDirectory:@"MyWebSite"];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL fileURLWithPath:path]];
[_webView loadRequest:request];
嗨,q0re,还是不走运(.我仍然无法在屏幕上显示图像,也无法单击屏幕上的任何按钮。我认为.js文件没有响应,但另一方面,相同的文件在android设备上运行良好。页面是否显示?我的意思是,html代码,但样式和js没有..?是的,html代码确实显示在屏幕上,但显示方式相同与其他尝试过的方法一起出现(其他4种方法),仍然没有响应java sript。是的,这是因为html文件中指向js和css样式表的路径错误。是的,q0re您是对的。在我使用选项“为任何文件夹创建组”而不是使用选项“为任何添加的文件夹创建文件夹引用”添加html文件夹后,路径错误。非常感谢您的帮助。c希尔斯:)
NSString* path = [[NSBundle mainBundle] pathForResource:@"index.html"
ofType:nil
inDirectory:@"MyWebSite"];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL fileURLWithPath:path]];
[_webView loadRequest:request];