Cocoa Webkit访问url而不输入http://?

时间:2010-03-31 04:43:18

标签: cocoa url webkit

有没有办法在不输入http://?

的情况下访问网站

1 个答案:

答案 0 :(得分:0)

如果你想复制Safari的“协议猜测”甚至“TLD猜测”,你必须自己实现。

从用户的角度来看,您通常不必将协议输入Web浏览器,因为可以安全地假设协议是“http”。从开发人员的角度来看,您需要在形成URL时指定协议。

由于您将此问题标记为“webkit”,我假设您正在使用WebView。来自-[WebView setMainFrameURL:]的文档:

  

此方法在功能上是等效的   调用[[webView mainFrame]   的loadRequest:[的NSURLRequest   requestWithURL:[NSURL   URLWithString:URLString]]]

注意,命名不佳的-setMainFrameURL:方法接受NSString,而不是您期望的NSURL。因此,考虑到这一点,您仍必须提供有效的URL字符串才能获得有效的URL。

但是,如果您在评论中提到,请务必注意“http://digg.com”与“http://www.digg.com”一样有效。这由目标域的名称服务器处理,与URL是否有效无关。这是因为“digg.com”可能仍然解析为实际主机(即没有主机转发到“www”的域的记录)。某些域不执行此操作,因此您可能希望单独处理此情况(无效主机名),如果不存在则尝试添加“www”。重要的是“有效的URL!=有效的域名”。

考虑到这一切,你必须推出自己的“猜测”解决方案。