博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微信公众号的localStorage的大坑
阅读量:7235 次
发布时间:2019-06-29

本文共 859 字,大约阅读时间需要 2 分钟。

业务流程是:工厂端分享一个邀请合作的二维码,商户这边用手机扫一扫后,关注微信公众号(已关注的老用户自动进入公众号)然后进入到公众号在面板上收到消息,合作邀请(图文字有点不对,请忽略!)

接下来,在点击这个模板消息进入页面的时候需要判断一件事,当前的用户中心是否登陆了账号。

第一直觉是直接去根据localStorage判断用户有没登陆。但是其实是拿不到的,通过面板的模板消息点击进入页面拿到的整个localStorage是{ }。而账号确确实实是登陆了的呀。

那么就说明这是两套体系,模板消息进入的页面与菜单跳转进入的页面不是共通的。上微信公众平台看了下

首先我们把微信内置的第三方网页看成是在整个浏览器环境下的想法是错误的,微信这个算不上浏览器,它是用chrome改造做的一套WKwebView,概念上类似是一套组建。百度上也有很多人吐槽这个问题,cookie和session都解决。

我的解决方法是在登陆账号的时候设置对应的cookie值,有效时间跟令牌或者token时间大致相同,最好是少一天。这样在外面模板消息点击进入页面时可以通过cookie来判断有没有登陆。

 

再提一个问题:若是本来没有登陆的情况下,点击模板消息的合作邀请会跳转进入合作邀请的页面,但是我判断它当前未登陆,所以就跳转到登陆页面去,(这个流程需要在localStorage中设置标识字段),当用户登陆后再跳转回合作邀请页面,然后确认合作。

 

这样一套流程走下来是没问题,但当用户第二次打开微信当然是点击用户中心菜单进去吧,这个时候尴尬了,因为之前的登陆操作的入口是模板消息那边进去的,前面提过了,两套体系不同,所以点击用户中心菜单进去的时候local根本是空的。

 

目前这个问题还没走下去,鉴于上门提到的cookie好像是共用的,所以暂时是想着用cookie去尝试着做。

 

用cookie总感觉不是很靠谱,希望大家多多指点一下更好的方法或者意见!

 

 

 

转载于:https://www.cnblogs.com/hjj2ldq/p/8639490.html

你可能感兴趣的文章
领导者/追随者(Leader/Followers)模型和半同步/半异步(half-sync/half-async)模型都是常用的客户-服务器编程模型...
查看>>
如何选择行的第一个和最后一个值 之间间隔为5分钟
查看>>
4、QT分析之调试跟踪系统
查看>>
Vmware下Mac系统Vmware tools安装
查看>>
方法多种,选择随已定
查看>>
SharePoint中CAML使用的一些总结
查看>>
Bundle数据传输
查看>>
[Z]POJ 计算几何入门题目推荐[转PKKJ]
查看>>
【每日一摩斯】-Troubleshooting: High CPU Utilization (164768.1) - 系列5
查看>>
Vue.js:轻量高效的前端组件化方案
查看>>
给MySQL增加mysql-udf-http和mysql-udf-json自定义函数,让MySQL有调用http接口和查询直接回JSON的能力...
查看>>
hibernate 单元測试框架
查看>>
Android:关于声明文件中android:process属性说明
查看>>
elastic-job详解(五):自定义任务参数
查看>>
ubuntu设置分辨率
查看>>
Apache Kylin v3.0.0-alpha 正式发布
查看>>
区块链开发公司 区块链能否走上主义救援之路?
查看>>
机器会取代人类吗?
查看>>
实现Java热部署的几种解决方案
查看>>
Linux基础命令---mkswap
查看>>