загрузить локальный HTML-файл при нажатии на ссылку в WebView - PullRequest
1 голос
/ 18 ноября 2010

У меня есть WebView, который загружает локальный HTML-файл, например:

[webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"test1" ofType:@"html"]isDirectory:NO]]];

Мне нужно щелкнуть ссылку в локальном HTML-файле test1, а затем в WebView загрузить локальный HTML-файл test2.файл.

Как я могу это сделать?

Ответы [ 3 ]

6 голосов
/ 18 ноября 2010

Вместо загрузки запроса используйте метод - (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL.

Создайте NSString из локального HTML-файла следующим образом:

NSError *error = nil;
NSString *html = [[NSString alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"test1" ofType:@"html"] encoding:NSUTF8StringEncoding error:&error];

Затем загрузите его в веб-представление, например так:

[webview loadHTMLString:html baseURL:[NSURL URLWithString:[[NSBundle mainBundle] pathForResource:@"test1" ofType:@"html"]]];

Затем в своем HTML-файле, когда вы ссылаетесь на другие страницы, просто используйте их имя файла, например <a href="test2.html">Test 2</a>, и он загрузит страницу в том же веб-просмотре без проблем.

1 голос
/ 19 ноября 2010
- (void)viewDidLoad {
    [super viewDidLoad];
    [webview loadHTMLString:[self htmlString] baseURL:[self baseURL]];
}
- (NSURL *)baseURL{
    NSString *htmlpath = [[NSBundle mainBundle] pathForResource:@"webpage" ofType:@"html"];
    return [[[NSURL alloc] initFileURLWithPath:htmlpath] autorelease];
}

- (NSString *)htmlString{
    NSError *error = nil;
    NSString *html = [[[NSString alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"webpage" ofType:@"html"] 
                                                     encoding:NSUTF8StringEncoding 
                                                        error:&error] autorelease];
    return html;
}
1 голос
/ 18 ноября 2010

Как на обычной веб-странице.Пусть ссылка в тесте 1 указывает на test2.

...