關於ios 11.X后微信wifi認證,無法打開微信,無法重定向到weixin:開頭網址等問題的處理


環境:

  認證路由ROS ,認證后台python django

ios11系統 更新以來先后出現微信wifi認證,無法打開微信,無法重定向到weixin:開頭網址等相關問題。

 

 

經過問題的收集,查詢到網絡上此類問題普遍存在

收集到的有如下網址,市面上大多數廠商在使用微信wifi 認證都存在這個問題

  http://www.ruijie.com.cn/fw/wt/61089/

  http://www.adslr.com/bbs/forum.php?mod=viewthread&tid=1143

  https://www.v2ex.com/t/445255

  http://www.tg-net.cn/faq_article507_399.html

  http://www.natshell.com/plus/view.php?aid=1319

  http://www.sohu.com/a/193853473_421197

收集到的一些解決辦法:

  http://www.xiegaosheng.com/post/view?id=99

  https://segmentfault.com/a/1190000016226365?utm_source=tag-newest

 

下面簡單說明下此類問題:

  無法打開微信認證問題,只有IOS 11.X后會出現。

  默認IOS 認證連接上wifi 會自動彈出wifi 認證頁面,后台會自動臨時放行。認證頁面的狀態顯示完成。

  用戶點擊一鍵打開微信連接wifi,會提示 無法重定向到weixin:開頭網址。

  導致不能打開微信,完成微信wifi認證。

  然后,在此繼續打開safari瀏覽器,輸入http開頭的網址。會繼續提示微信wifi認證。然后打開微信成功。

  說明,默認的認證頁面 存在了限制,導致無法使用微信相關的私有協議網址。

如何解決?

  需要解決之類問題,就需要引導用戶去加載到safari上才能打開微信完成微信認證。

  所以首先要判斷系統是否為ios

  下面是JS代碼:

    //首次加載頁面提示正在准備網絡中
    function btntime1(btn1) {
        btn.style.display='none';
        btn1.style.display='';
        if (wait ==0) {
            //倒計時加載完顯示一鍵打開微信
            btn1.style.display='none';
                //判斷是ios
                var u = navigator.userAgent;
                var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android終端
                var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios終端
                if (isiOS) {
                    //如果是ios,就顯示ios的a標簽
                    btn.style.display='none';
                    btn3.style.display='';
                    var ios_auto_url ="{{ loginurl }}".replace("login","") + "ios_auto_weixin_login.html";
                    setTimeout("captive();",500);
                    btn3.href= ios_auto_url;

                } else {
                    //如果不是ios,就顯示默認的a標簽,
                    btn3.style.display='none';
                    btn.style.display='';
                }
            wait = 5;
        } else {
           btn1.style.backgroundColor= "#f2f2f2";
           btn1.style.color= "#bbb1b1";
           btn1.innerHTML="正在准備網絡(" + wait +")";
           wait --;
           setTimeout(function () {
               btntime1(btn1);
           },
           1000)
        }
    }

  判斷是IOS 就把 一鍵打開微信認證的 A 標簽href地址改成自己定義好的網址。

  此時用戶的狀態是臨時放行的。

 

  用戶點擊自己定義的一個html地址,這個html地址就會從safari上打開,加載微信認證頁面。這個認證頁面也會自動去加載微信

    (ps:重新設置一個html頁面,和重新設置一個能自動加載呼起微信函數認證頁面)

 

 

yoghurt

  用戶就點下微信打開就可以完成微信認證了。

 

 

期待優化的問題:

  目前這種流程大部分手機可以正常使用,但是還是有少部分手機會認證頁面不自動關閉。

  這時候就在頁面上提示點擊右上角完成,然后就到safari瀏覽器中完成微信認證。

  也可以優化下頁面,變成這種有剪頭指引的。讓用戶體驗更好。

 

   目前測試了一天,還是存在一個手機無法瀏覽器中打開的問題,和個別手機會認證兩次才會成功的問題。

  所以期待你的流程優化。

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM