带有Fragment ID的内部URL



我在主包中有一个大的.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格式中额外的%可能会导致问题:尝试@"%@%@",而不是@"%@%@%"

相关内容

  • 没有找到相关文章

最新更新