开发者

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜