1. 程式人生 > >用cookie解決新版微信中H5頁面底部白條問題

用cookie解決新版微信中H5頁面底部白條問題

背景

        5月23日微信更新6.6.7版本,新加的文章縮小浮窗功能確實很贊。不過,有一處更新頗使H5開發者感到困擾,就是在iPhone上H5頁面最底部多了一個白色的前進後退控制欄,即下圖底部的那個白條,

        

分析

        在微信裡只要發生頁面跳轉,這個控制瀏覽器前進後退的白色條就會出現。

        如果進入H5首頁每次都要微信授權來獲取使用者資訊,那這個白條將每次都會出現,因為oauth授權一定會有跳轉。第一次授權跳轉是無法避免的,那麼只要避免使用者進行二次授權,也就避免了白條的再次出現。所以,解決問題的關鍵點在於如何避免微信二次授權。

解決方法

        獲取使用者資訊方法

之前是分享過的,在上篇程式碼上繼續優化,來實現避免微信二次授權。

        實現思路是,引入cookie功能,建立一個儲存訪客微信使用者資訊的cookie。當用戶首次訪問時,通過oauth授權獲取使用者資訊,並存儲於cookie中。當用戶再次訪問時,判斷是否有相應cookie來調取使用者資訊,這樣就不會觸發二次授權。

        首先,定義建立和讀取cookie的函式,

      // 建立cookie
      function setCookie(c_name, value, expiredays){
        var exdate = new Date();
        exdate.setDate(exdate.getDate() + expiredays);
        document.cookie = c_name+ "=" + escape(value) + 
        ((expiredays==null) ? "" : "; expires="+exdate.toGMTString());
      }
      // 讀取cookie
      function getCookie(c_name){ 
        if(document.cookie.length > 0){ 
          c_start = document.cookie.indexOf(c_name + "=");
          if(c_start != -1){ 
            c_start = c_start + c_name.length + 1 ;
            c_end = document.cookie.indexOf(";", c_start)
      
            if(c_end == -1){
              c_end = document.cookie.length;
            }
            return unescape(document.cookie.substring(c_start, c_end));
          } 
        }
        return "";
      }

        然後,通過檢查是否有使用者資訊cookie值,來判斷是否要跳轉授權,

      var openid; // 使用者openid
      var nickname; // 使用者暱稱
      var headimgurl; //使用者頭像

      // 檢查cookie
      function checkCookie(){
        userinfo = getCookie('userinfo');
        
        if(userinfo != null && userinfo != "" && userinfo != "null,null,null"){ // 有相應cookie,讀取使用者資訊
          var strArr = userinfo.split(',');
          openid = strArr[0]; 
          nickname = strArr[1]; 
          headimgurl = strArr[2];

        }else{ // 沒有相應cookie,重新授權並寫入cookie
          openid = getUrlParam("openid"); 
          nickname = getUrlParam("nickname"); 
          headimgurl = getUrlParam("headimgurl");
          
          /* 
            此處為“跳轉授權,獲取使用者資訊程式碼”。上篇分享過,這裡省略... ...
          */

          var strInfo = openid + "," + nickname + "," + headimgurl;
          setCookie('userinfo', strInfo, 365); // 建立cookie,cookie的名稱、值以及過期天數。
        }
      }
        在進入頁面後,呼叫以上方法,即可解決問題。

Demo二維碼

        

參考連結

相關推薦

cookie解決新版H5頁面底部白條問題

背景        5月23日微信更新6.6.7版本,新加的文章縮小浮窗功能確實很贊。不過,有一處更新頗使H5開發者感到困擾,就是在iPhone上H5頁面最底部多了一個白色的前進後退控制欄,即下圖底部的那個白條,        分析        在微信裡只要發生頁面跳轉,這

最新關於h5頁面qp防封屏蔽技術的分享

屏蔽 得到 func size con pin 保護 api true 現在所有產品都會在微信中推廣,比如減肥產品,美容產品,今天我們來分析的是qp在微信 中的推廣,眾所周知,微信一直都在打壓網絡qp,包括qp遊戲、紅包等等,因此,微信根據用戶投訴舉報來審核,另一方面,微信

通過頁面(H5)直接打開本地app的解決方案

ids 支持 完全 系統默認 domain rdquo bili 通過 解決 簡述 微信中通過頁面直接打開app分為安卓版和IOS版,兩個的實現方式是完全不同的。 安卓版實現:使用騰訊的應用寶,只要配置了“微下載”之後,打開鏈接騰訊會幫你判斷本地

日常開發記錄打卡系列--新版瀏覽器H5開發

微信更新新版之後,有的吐槽有的點贊 不管你是因為新版微信的什麼問題導致前端頁面和邏輯有影響的 這篇文章主要講的就是 哪一些原因你能控制 哪一些無法控制的。   1.Fixed固定定位 在頭部或者底部的 會因為返回欄或頂部欄滾動縮小 拿個京東的例子給大家看看

H5網頁如何喚醒開啟外部瀏覽器開啟指定連結

最近遇到一個需求、朋友找我製作一個在微信中的聊天框,或者公眾號選單釋出一條連結或者二維碼。跳出微信開啟一個指定的我們自己的頁面, 拿到這個需求後我們團隊分開去找資料研究方案,通過微信的開發文件、騰訊的第三方開發文件我們都查閱過資料但是最終只找到一些歷史性的資料也就是以前可以現在已經全部封閉了, 在網路上找

怎麽解決不能直接下載APP的方案

溝通 效果 客戶 image 推廣 mark jpg mage cto 隨著大家的溝通、社交與閱讀方式發生變化,工作和生活都和微信離不開,不管是個人還是商家,都在微信中進行推廣,讓大家直接在微信中下載 APP ,但是微信為了維護自己的利益,不會讓大家直接在微信中下載,一般步

分享到h5頁面

css:<style>             * {                &

安卓 h5 頁面 增加 底部導航欄總結

Aphorism grow in errors overview 最近在寫一個 移動端的 jsp 專案, 應專案需求須在安卓機器上實現一個 ios 微信h5頁面 底部的 導航條 想到的實現方案: 通過jsp 寫一個 父頁面然後 每個子頁面通過 include

HTML5頁面被運營商DNS劫持問題及解決方案,apph5頁面原始碼的獲取

App應用的html5頁面經過運營商的行動網路(非wifi網路),被強制插入廣告和手機管家的多餘資訊,在有些場景嚴重干擾使用者的操作,也產生在美麗的頁面上加入了不協調的懸浮層。並且這個手機管家類的懸浮層有時間出現,有時間不出現,神出鬼沒,雖然你可以通過點選關閉手

禁止頁面上下滑動 ios android通用 親測可行

document.body.addEventListener('touchmove', function (e) {  e.preventDefault(); //阻止預設的處理方式(阻止下拉滑動的效果

Android 仿載入H5頁面進度條實現

前言 Android中WebView打卡前端頁面時受到網路環境,頁面內容大小的影響有時候會讓使用者等待很久。顯示一個載入進度條可以提升很大的體驗。微信內訪問H5頁面載入效果不錯,效仿著寫了一個。 1

基於Jquery WeUI的開發H5頁面控制元件的經驗總結(1)

在微信開發H5頁面的時候,往往藉助於WeUI或者Jquery WeUI等基礎上進行介面效果的開發,由於本人喜歡在Asp.net的Web介面上使用JQuery,因此比較傾向於使用 jQuery WeUI,本篇隨筆結合官方案例和自己的專案實際開發過程的經驗總結,對在H5頁面開發過程中設計到的介面控制元件

基於Jquery WeUI的開發H5頁面控制元件的經驗總結(2)

在微信開發H5頁面的時候,往往藉助於WeUI或者Jquery WeUI等基礎上進行介面效果的開發,由於本人喜歡在Asp.net的Web介面上使用JQuery,因此比較傾向於使用 jQuery WeUI,本篇隨筆結合官方案例和自己的專案實際開發過程的經驗總結,對在H5頁面開發過程中設計到的介面控制元件

蘋果h5頁面window.history.go(-1)返回上一頁頁面不會重新載入/重新整理

微信中h5頁面用window.history.go(-1)返回上一頁頁面不會重新載入問題 問題描述:     在實際開發中遇到這樣一個問題,業務需求涉及到返回上一頁問題,第一時間想到了window.history.go(-1)方法,這樣做本身沒有任何問題,但是在微信中,安卓手機還好返回上一頁

推廣域名被被攔截、封殺、遮蔽的原因以及解決方案

科普: 域名被微信封殺,顯示的是連結無法訪問; 域名被微信攔截,是跟淘寶一樣-如需瀏覽,請長按網址複製後使用瀏覽器訪問。域名被微信遮蔽,顧名思義,遮蔽,肯定是看不到!!域名被信封,確實很多因素有關,簡單列舉下: 1、微信規定域名要備案,並且要加白名單,新買的域名沒做站就被封,應該是搶的剛被人放棄的域

無法下載APP的解決方案(自動跳轉瀏覽器開啟下載連結)

現在微信分享的功能很多,從分享的連結下載apk安卓包是很正常的,但是微信不讓下載apk包,只能通過瀏覽器來下載,但是這要給使用者一個提示吧,不然使用者不知道 下面我們來實現,使用者通過微信點選跳轉瀏覽器來下載apk包 操作步驟 月牙跳轉是一款基於微信後端開發了一款微信營銷下載推廣助手,使

的下載連結掃一掃無法開啟解決方案

信掃一掃遮蔽了APP下載連線無非是想讓大家將資源轉移到自家平臺,國人微信中毒過深,看到二維碼首先想到的一定是微信(好強大的使用者引導)。為了更好的使用者體驗,只能向騰訊屈服將應用轉移到騰訊平臺。當然如果是願意付錢當然有第三方的服務平臺直接上去可以(在這裡就不為某平臺打廣告了)。 首先要先上open.qq.co

的下載鏈接掃一掃無法打開解決方案

get 問題 自己的 資源 clu 們的 api alt 廣告 信掃一掃屏蔽了APP下載連接無非是想讓大家將資源轉移到自家平臺,國人微信中毒過深,看到二維碼首先想到的一定是微信(好強大的用戶引導)。為了更好的用戶體驗,只能向騰訊屈服將應用轉移到騰訊平臺。當然如果是願意付錢當

vue-解決內建瀏覽器呼叫支付寶支付的問題

我的思路大概是這樣的 1. 驗證是否是在微信內建瀏覽器中呼叫支付寶 2.給支付頁面的url加上呼叫介面所需的引數(因為在微信裡是不能直接呼叫支付寶的需要呼叫外部瀏覽器) 3.在外部瀏覽器中完成支付跳轉頁面 第一步: payment: 是選擇支付頁面,pay-mask

無法下載APP的解決方案(自動跳轉瀏覽器打開下載鏈接)

信任 現在 自動跳轉 頁面 div 分享圖片 鏈接地址 cdn 不讓 現在微信分享的功能很多,從分享的鏈接下載apk安卓包是很正常的,但是微信不讓下載apk包,只能通過瀏覽器來下載,但是這要給用戶一個提示吧,不然用戶不知道 下面我們來實現,用戶通過微信點擊跳轉瀏覽器來下