插件不檢測用戶是否有權訪問Internet,但僅當用戶在網絡上時纔有效。由於即使WiFi網絡無法訪問互聯網,您的手機仍在WiFi網絡上,因此該插件按設計運行。
爲了測試連接性,您必須始終嘗試請求 - 這是真正知道設備是否可以訪問Internet的唯一方法。因此,如果您嘗試訪問www.google.com
,則必須嘗試請求並處理導致的任何錯誤。讓網絡插件就位的唯一好處是,您可以獲得更多關於是否值得嘗試請求的更多信息 - 如果設備未連接到任何網絡,您知道有一點在嘗試請求中受益。
如果沒有路線,您的請求應該幾乎立即失敗。如果還有其他問題,您的請求可能會超時。由於超時可能需要幾秒鐘(或幾分鐘)才能發生,所以請確保在長時間請求中向用戶指示一些進度。
如果您的應用需要定位特定主機,那麼這些主機就是您用來驗證連接的主機。如果您的應用程序定位通用主機(或用戶輸入的主機),請測試特定主機以測試連接。
- 不要認爲,因爲設備可以連接到一臺主機,這意味着它可以到達另一臺主機 - 有些網絡可能會阻止某些主機,同時允許訪問其他主機。
- 不要使用不是實際請求一部分的主機進行測試,特別是如果它是您不能控制的主機。也就是說,如果你想測試用戶是否可以達到
www.example.com
,請不要ping www.google.com
。您的嘗試可能會被視爲惡意攻擊,尤其是如果您的應用程序變得流行。
另外一個提示:
做檢查的網絡類型,看看是否需要限制的數據(在蜂窩網絡的情況下) 但不要以爲網絡類型可以用來表明數據傳輸速度 - 僅僅因爲你在4G網絡上並不意味着你將得到快速的數據傳輸保證。當然,這同樣適用於WiFi。
我認爲插件可以檢測您是否連接到無線網絡。如果你的wifi網絡連接到互聯網或沒有,它沒有什麼區別。插件必須將一個包發送到服務器,並獲得一個用於檢測您是否在線或離線的答案。也許你可以自己用javascript創建這樣的功能,例如ping通谷歌,但是...我不知道,這與什麼關係適用法律 – Sithys 2014-09-05 14:05:42
我想我在這裏得到方向。我需要互聯網連接來訪問我自己的API,所以我可以ping我自己的API來檢查互聯網連接。 – 2014-09-06 08:34:36