我怎样才能加载一个本地的HTML文件,而不是在Xcode的web视图的网页?
嘿! 如何加载保存到项目中的本地html文件而不是此代码中的网页:
- (void)loadAboutHTML { UIWebView *aboutHTML = [[UIWebView alloc] init]; NSURL *webURL = [NSURL URLWithString:@"http://apple.com"]; NSURLRequest *webURLRequest = [NSURLRequest requestWithURL:webURL]; [aboutHTML loadRequest:webURLRequest]; [aboutHTML setScalesPageToFit:YES]; [aboutHTML setFrame:CGRectMake(0, 0, 320, 416)]; [self addSubview:aboutHTML];}
选项1
用这个
- (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL
将项目中的文件内容读入NSString
。 然后使用上面的方法来加载html内容
使用
+ (id)stringWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding)enc error:(NSError **)error
从文件中获取string然后使用
[webView loadHTMLString:urHTMLString baseURL:baseURL];
scheme2
NSURLRequest *urlReq = [NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"fileName" ofType:@"html"]]]; [webView loadRequest:urlReq];
UPDATE
- (void)loadAboutHTML { UIWebView *aboutHTML = [[UIWebView alloc] init]; NSURLRequest *urlRequest = [NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"yourFileName" ofType:@"html"]]]; [aboutHTML loadRequest:urlRequest; [self addSubview:aboutHTML]; }
UIWebView *web = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)]; [web loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"help" ofType:@"html"]isDirectory:NO]]]; web.backgroundColor = [UIColor clearColor];
多数民众赞成我曾经使用
本地网站的HTML
[webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"file_name_html" ofType:@"html"] isDirectory:NO]]];
http网页
[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://google.com"]]];
may be the answer of the solution CGRect applicationFrame = [[UIScreen mainScreen] applicationFrame]; applicationFrame.origin.y = 0; webView = [[UIWebView alloc] initWithFrame:applicationFrame]; webView.autoresizingMask = (UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight); NSString *basePath = [[NSBundle mainBundle] bundlePath]; NSURL *baseURL = [NSURL fileURLWithPath:basePath]; NSString *filePath = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"]; NSString *htmlString = [NSString stringWithContentsOfFile:filePath]; if (htmlString) { [webView loadHTMLString:htmlString baseURL:baseURL]; } [self.view addSubview:webView];
UIWebView *agreementView = [[UIWebView alloc] initWithFrame:CGRectMake(10, newY, 494, 300)]; agreementView.delegate = self; agreementView.dataDetectorTypes = UIDataDetectorTypeNone; [agreementView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"yourfilename" ofType:@"html"]]]]; loadingIndicator=[[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]; loadingIndicator.frame=CGRectMake(237, 140, 20, 20); loadingIndicator.transform = CGAffineTransformMakeScale(1.55, 1.55); [agreementView addSubview:loadingIndicator]; - (void)webViewDidStartLoad:(UIWebView *)webView { loadingIndicator.hidden=NO; [loadingIndicator startAnimating]; } //delegates - (void)webViewDidFinishLoad:(UIWebView *)webView { loadingIndicator.hidden=YES; [loadingIndicator stopAnimating]; } - (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error { [loadingIndicator stopAnimating]; } - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { if(UIWebViewNavigationTypeOther == navigationType) { return YES; } return NO; }