有没有办法在不输入http://?
的情况下访问网站答案 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!=有效的域名”。
考虑到这一切,你必须推出自己的“猜测”解决方案。