我在主包中有一个大的.htm
文件,我希望加载到webview中。没有问题,直到我附加一个片段id到URL的结尾。我希望webview在一个锚id #c
上按下按钮打开。
顺便说一句:如果我创建一个URL http://www.mydomain.com/database.htm#c并从互联网加载这个。一切都好。
我已经尝试了几种方法。两者都失败了。我猜是服务器端解析了互联网上的URL,但是iPhone没有这个功能。有人有什么建议吗?如果可能的话,请举例说明。我是一个新手,我自己。
难住了
NSString *path = [[NSBundle mainBundle] pathForResource:@"database1.htm" ofType:nil];
NSString *pathWithFrag = [NSString stringWithFormat:@"%@%@%",path, @"#c"];
NSURL *baseURL = [ NSURL fileURLWithPath:pathWithFrag];
[spinner2 loadRequest:[NSURLRequest requestWithURL:baseURL]];
[super viewDidLoad];
或
NSString *path = [[NSBundle mainBundle] pathForResource:@"database1.htm" ofType:nil];
NSURL *baseURL = [ NSURL fileURLWithPath:path];
NSURL *newURL = [baseURL URLByAppendingPathComponent:@"#c"];
[spinner2 loadRequest:[NSURLRequest requestWithURL:newURL]];
[super viewDidLoad];
看起来可能是NSURL url转义"#"字符的问题:http://9mmedia.com/blog/?p=299
按照那篇博客文章中的方法,这样做可能会奏效:
NSString *path = [[NSBundle mainBundle] pathForResource:@"database1.htm" ofType:nil];
NSURL *baseURL = [NSURL fileURLWithPath:path];
NSURL *fullURL = [NSURL URLWithString:@"#c" relativeToURL:baseURL];
[spinner2 loadRequest:[NSURLRequest requestWithURL:fullURL]];
[super viewDidLoad];
pathWithFrag
格式中额外的%
可能会导致问题:尝试@"%@%@"
,而不是@"%@%@%"