How can I load a local HTML file instead of a web page in Xcode webview?
Hey! How can I load a local开发者_C百科 html file saved to the project instead of a webpage in this code:
- (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];}
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];
thats wat i had used
OPTION 1
Use this
- (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL
Read the contents of the file in your project into an NSString
. Then use the above method to load the html content
Use
+ (id)stringWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding)enc error:(NSError **)error
to obtain the string from the file and then use
[webView loadHTMLString:urHTMLString baseURL:baseURL];
OPTION 2
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];
}
local web html
[webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"file_name_html" ofType:@"html"] isDirectory:NO]]];
http web
[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;
}
精彩评论