何时将http://添加到网站地址



我正在尝试使用Cocoa和Swift创建一个web浏览器。我有一个NSTextField,用户可以在其中输入他想要打开的网站,还有一个WebView,其中显示所请求的页面。到目前为止,为了改善用户体验,我正在检查用户输入的网站是否以http://开头,如果没有,则添加它。嗯,它适用于大多数情况,但不是每次都适用,例如当用户想要打开本地网页或类似about:blank的东西时。如何检查是否需要添加http://,以及是否应该添加https://而不是http://

您需要更加精确地对用户键入的内容进行分类。以下是一些例子和预期反应:

  1. www.google.com:应翻译成http://www.google.com
  2. ftp://www.foo.com:不应修改。同样适用于文件://(本地)
  3. 巴拉克·奥巴马:可能应该运行一个搜索引擎
  4. 关于:设置:应该打开内部页面

因此,在您弄清楚这些规则及其所有异常之后,您可以使用正则表达式来找出应该做什么。

至于HTTP与HTTPS——如果网站支持HTTPS,如果你转到HTTP链接,你会得到重定向响应(307内部重定向、301永久移动等)。例如,如果您尝试导航到http://www.facebook.com,您将收到一个307,它会将您重定向到https://www.facebook.com.换句话说,这取决于网站告诉浏览器它有HTTPS(当然,除非你一开始就导航到HTTPS)。

一个简单且相当准确的方法就是寻找不同模式的存在。如果字符串在遇到任何斜杠之前以[SomeText]:开头,则可能是为了指示不同的模式,如about:mailto:file:ftp:

如果没有看到非http架构,请尝试通过在http://前面加上前缀将URL解析为http URL。

最新更新