如何在Xcode webview中加载本地HTML文件而不是网页?

时间:2011-05-09 11:03:12

标签: iphone objective-c xcode ios

喂! 如何在此代码中加载保存到项目中的本地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];}

5 个答案:

答案 0 :(得分:13)

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];

这就是我用过的东西

答案 1 :(得分:5)

选项1

使用此

- (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL

将项目中文件的内容读入NSString。然后使用上面的方法加载html内容

使用

+ (id)stringWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding)enc error:(NSError **)error

从文件中获取字符串然后使用

[webView loadHTMLString:urHTMLString baseURL:baseURL];

选项2

NSURLRequest *urlReq = [NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"fileName" ofType:@"html"]]];
[webView loadRequest:urlReq];

<强>更新

- (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];
}

答案 2 :(得分:2)

本地网站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"]]];

答案 3 :(得分:2)

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];

答案 4 :(得分:0)

 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;
}