4

.htm我希望加载到 webview 的主包中有一个大文件。在我将片段 ID 附加到 URL 的末尾之前没有问题。#c我希望 webview在按钮按下时以锚点 id 打开。

顺便说一句:如果我创建一个 URL http://www.mydomain.com/database.htm#c并从 Internet 加载它。一切都很好。

我尝试了几种方法。两者都失败了。我猜服务器端会解析互联网上的 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];
4

2 回答 2

3

看起来这可能是 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];
于 2011-05-01T16:44:28.043 回答
0

%格式中的额外pathWithFrag内容可能会导致问题: try @"%@%@", not@"%@%@%"

于 2011-04-29T17:54:10.083 回答