2015-02-17 69 views
0

我正在嘗試使用Cocoa和Swift創建Web瀏覽器。我有一個NSTextField用戶可以進入他想要打開的網站和一個WebView顯示所請求的頁面。到目前爲止,爲了改善用戶體驗,我正在檢查用戶輸入的網站是否以http://開頭,如果不是,則添加它。那麼,它適用於大多數情況下,但不是每次,例如當用戶想要打開本地網頁或類似about:blank。我如何檢查是否需要添加http://,如果我應該添加https://而不是http://何時將http(s)://添加到網站地址

回答

0

你需要在你對什麼樣的用戶在鍵入的分類更精確 下面是一些例子和預期反應:

  1. www.google.com:應該翻譯成http://www.google.com
  2. ftp://www.foo.com :不應該被修改。同去的file://(本地)
  3. 奧巴馬:可能應該運行搜索引擎
  4. 約:設置:應該打開內部頁

所以你弄清楚這些規則後,所有的例外情況,你可以使用正則表達式來找出應該做什麼。對於HTTP與HTTPS - 如果站點支持HTTPS,如果您轉到HTTP鏈接,您將獲得重定向響應(307內部重定向,301永久移動等)。因此,例如,如果您嘗試導航至http://www.facebook.com,則會收到307將您重定向至https://www.facebook.com。換句話說,取決於網站告訴瀏覽器它有HTTPS(除非你自己導航到HTTPS開始)。

0

一個簡單而相當準確的方法就是尋找不同模式的存在。如果字符串在遇到任何斜線之前以[SomeText]:開頭,則可能意圖指示不同的架構,例如about:mailto:file:ftp:

如果您沒有看到非http架構,請嘗試通過預先計劃http://將URL解析爲HTTP URL。