为你的App增加WIFI认证检测,让用户体验更加丝滑

  • 时间:
  • 浏览:8

根据Captive Portal的实现法律法律依据和特点,亲戚朋友有以下某种常用检测法律法律依据:( 欢迎补充~ )

删改可参看:

关于Apple的Captive Network Assistant

Bypasses Apple Captive Network Assistant Login in iOS 7

删改可参看:

关于Android的captive portal

大多数需认证WIFI实现Captive Portal是通过HTTP重定向的法律法律依据,也有你这一是通过DNS劫持或ICMP重定向的法律法律依据。

有你这一时要注意的是,判断host删改相等也有有点硬大约,比如在WKWebView里访问http://www.baidu.com ,但会 会被重定向到http://m.baidu.com ,后该则不属于WIFI时要认证的情况汇报。

基于判断host的法律法律依据,我写了另好几个 检测Captive Portal的小Demo装入 了github,其中用于Captive Portal检测的工具类是CaptivePortalCheck,如此 任何内部人员依赖,即拿即用,欢迎尝试~

而其它的大应用如微信、手淘、支付宝、钉钉、美团、点评、爱奇艺、百度地图等则都如此 给出认证提醒,后该提示我检查网络设置等,说明你这一App都没重视到你这一细节,而随便说说现在你这一场景还是后该的,比如花生地铁WIFI、i-Shanghai、i-hangzhou、alibaba-guest和其它你这一公共场所的WIFI,还是有必要做另好几个 优化~

但会 连接了需认证WIFI后,通过浏览器访问任何网页也有得到Captive Portal页面,后该对于iOS应用,另好几个 比较简单的检测法律法律依据是用WKWebView加载某另好几个 网页,在decidePolicyForNavigationAction代理法律法律依据里,拿到navigationAction.request.URL看host是也有删改变了,但会 删改变了即可判断当前WIFI时要认证。

iOS和Android系统随便说说早就实现了Captive Portal的检测机制,后该有你这一WIFI会绕后来该机制。就时要亲戚朋友额外再做一次检测了。

经过一番调研,你这一需认证才能使用的WIFI,使用的是Captive Portal机制,中文通常译作“强制主页”或“强制登录门户”,另好几个 Captive Portal是另好几个 Web登录页面,通常由网络运营商或网关在用户才能正常访问互联网后来拦截用户的请求并将另好几个 强制登录或认证主页呈现(通常是通过浏览器)给用户。该页面但会 要求用户输入认证信息、支付、接受你这一条款但会 你这一用户授权等,后该用户才能被授权访问互联网。该技术广泛用于移动和人个宽带服务,包括有线电视、商业WiFi、家庭热点等,也可用于访问企业和住宅区有线网络。删改可参看wiki:https://en.wikipedia.org/wiki/Captive_portal

也能否 通过判断HTTP情况汇报码的法律法律依据来检测Captive Portal。比如访问google提供的另好几个 空白网页http://clients1.google.com/generate_204 ,但会 返回的HTTP情况汇报码是204,则可判断当前网络不让认证,但会 时要提醒用户认证网络。

前段时间在上海坐地铁时连接了花生地铁WIFI,打开QQ音乐现在结速听歌,QQ音乐甜得给了我另好几个 "WIFI认证提醒"的弹窗,点击认证就跳转到了花生地铁WIFI的认证页,后来顺利联网成功,体验非常爽。作为一名iOS开发,不禁思考你这一是为什么在么在会 做到的呢?忘记WIFI重新连接后,打开手机里各个应用轮番测试一遍,发现QQ音乐、QQ、QQ空间另好几个 应用都做了比较好的WIFI认证提示:

文中内容如有不对,欢迎指正~

Android端的检测也能否 采用后该的法律法律依据,具体可参看google的文档:https://developer.android.com/reference/java/net/HttpURLConnection.html ,其中提到的判断机制如下: