我在shouldStartLoadWithRequest委托中的UIWebView中捕获链接点击信息。我正在使用mainDocumentURL来获取链接点击的网址。这显示了完整的URL,但我只需要页面的名称,即.html,.htm等请求。我看不到任何可以归还这个的财产。我是否需要解析并提取我自己或者是否有人知道NSURLRequest中是否存在将返回此属性的属性或方法。
非常感谢你的帮助。 贝
答案 0 :(得分:2)
如果我正确理解你,你想转换为NSString,然后使用它的方法。从你的NSURLRequest开始,你会做这样的事情(注意,我把它输入网页并且没有编译它):
NSURL *url = [request URL];
NSString *filename = [[url path] lastPathComponent];
如果您的网址类似http://www.foo.com/bar/baz.html,则会显示“baz.html”。
答案 1 :(得分:1)
我认为你的意思是URL的路径。下面的代码提取一个字符串s,其值为@“/ cheese.html”。
NSURL* u = [NSURL URLWithString:@"http://www.wibble.com/cheese.html"];
NSString* s = [u path];
查看RFC 1808的文档,该文档告诉您如何组成URL,然后阅读Apple的NSURL文档,该文档告诉您如何提取URL的这些部分。
答案 2 :(得分:0)
NSURL可以提取大部分网址元素。我怀疑你的意思是可以通过路径消息访问的路径。
如果你真的想从路径扩展我建议你使用路径然后检查返回的NSString,或者通过发送absoluteString
消息将整个URL转换为字符串。从NSString修剪扩展可以通过多种方式执行。