微信公眾號的localStorage的大坑


業務流程是:工廠端分享一個邀請合作的二維碼,商戶這邊用手機掃一掃后,關注微信公眾號(已關注的老用戶自動進入公眾號)然后進入到公眾號在面板上收到消息,合作邀請(圖文字有點不對,請忽略!)

接下來,在點擊這個模板消息進入頁面的時候需要判斷一件事,當前的用戶中心是否登陸了賬號。

第一直覺是直接去根據localStorage判斷用戶有沒登陸。但是其實是拿不到的,通過面板的模板消息點擊進入頁面拿到的整個localStorage是{ }。而賬號確確實實是登陸了的呀。

那么就說明這是兩套體系,模板消息進入的頁面與菜單跳轉進入的頁面不是共通的。上微信公眾平台看了下

首先我們把微信內置的第三方網頁看成是在整個瀏覽器環境下的想法是錯誤的,微信這個算不上瀏覽器,它是用chrome改造做的一套WKwebView,概念上類似是一套組建。百度上也有很多人吐槽這個問題,cookie和session都解決。

我的解決方法是在登陸賬號的時候設置對應的cookie值,有效時間跟令牌或者token時間大致相同,最好是少一天。這樣在外面模板消息點擊進入頁面時可以通過cookie來判斷有沒有登陸。

 

再提一個問題:若是本來沒有登陸的情況下,點擊模板消息的合作邀請會跳轉進入合作邀請的頁面,但是我判斷它當前未登陸,所以就跳轉到登陸頁面去,(這個流程需要在localStorage中設置標識字段),當用戶登陸后再跳轉回合作邀請頁面,然后確認合作。

 

這樣一套流程走下來是沒問題,但當用戶第二次打開微信當然是點擊用戶中心菜單進去吧,這個時候尷尬了,因為之前的登陸操作的入口是模板消息那邊進去的,前面提過了,兩套體系不同,所以點擊用戶中心菜單進去的時候local根本是空的。

 

目前這個問題還沒走下去,鑒於上門提到的cookie好像是共用的,所以暫時是想着用cookie去嘗試着做。

 

用cookie總感覺不是很靠譜,希望大家多多指點一下更好的方法或者意見!

 

 

 


免責聲明!

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



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