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

接下来,在点击这个模板消息进入页面的时候需要判断一件事,当前的用户中心是否登陆了账号。
第一直觉是直接去根据localStorage判断用户有没登陆。但是其实是拿不到的,通过面板的模板消息点击进入页面拿到的整个localStorage是{ }。而账号确确实实是登陆了的呀。
那么就说明这是两套体系,模板消息进入的页面与菜单跳转进入的页面不是共通的。上微信公众平台看了下
首先我们把微信内置的第三方网页看成是在整个浏览器环境下的想法是错误的,微信这个算不上浏览器,它是用chrome改造做的一套WKwebView,概念上类似是一套组建。百度上也有很多人吐槽这个问题,cookie和session都解决。
我的解决方法是在登陆账号的时候设置对应的cookie值,有效时间跟令牌或者token时间大致相同,最好是少一天。这样在外面模板消息点击进入页面时可以通过cookie来判断有没有登陆。
再提一个问题:若是本来没有登陆的情况下,点击模板消息的合作邀请会跳转进入合作邀请的页面,但是我判断它当前未登陆,所以就跳转到登陆页面去,(这个流程需要在localStorage中设置标识字段),当用户登陆后再跳转回合作邀请页面,然后确认合作。
这样一套流程走下来是没问题,但当用户第二次打开微信当然是点击用户中心菜单进去吧,这个时候尴尬了,因为之前的登陆操作的入口是模板消息那边进去的,前面提过了,两套体系不同,所以点击用户中心菜单进去的时候local根本是空的。
目前这个问题还没走下去,鉴于上门提到的cookie好像是共用的,所以暂时是想着用cookie去尝试着做。
用cookie总感觉不是很靠谱,希望大家多多指点一下更好的方法或者意见!
微信公众号的localStorage的大坑的更多相关文章
- 微信公众号使用LocalStorage解决返回缓存问题
在开发微信公众号上应用程序时,遇到了一个普遍的问题,从A页跳转到B页后,再由B页跳转回A页,A要要保持跟跳转前一致,通过LocalStorage可以解决. LocalStorage,很好的解决了返回的 ...
- 到处是坑的微信公众号支付开发(java)
之前公司项目开发中支付是用阿里的支付做的,那叫一个简单,随意:悲催的是,现在公司开发了微信公众号,所以我步入了全是坑的微信支付开发中... ------------------------------ ...
- 微信公众号之:JSSDK接入以及invalid signature等常见错误问题
最近在搞微信公众号开发,进行到网页开发部分被坑了一天,最坑的问题就是invalid signature,而网上大部分解答这个问题的都没有说清楚,都直接丢文档.博主认为这样很不好.本文是博主结合自身遇到 ...
- 一步一步教你用 Vue.js + Vuex 制作专门收藏微信公众号的 app
一步一步教你用 Vue.js + Vuex 制作专门收藏微信公众号的 app 转载 作者:jrainlau 链接:https://segmentfault.com/a/1190000005844155 ...
- py+appium微信公众号自动化(已搞定多个坑)
最近需要做微信公众号的自动化测试,遇到了不少坑. 微信公众号自动化与app自动化还是有区别的,因为多了不少坑.打开微信x5内核调试的就不说了,百度有. 1.首先,微信公众号有webview,uiaut ...
- 程序员的专属微信公众号编辑器:定制 Markdown 转 HTML
效果(Gif) 点击我查看 仓库地址 https://github.com/cdk8s/cdk8s-markdown-to-html https://gitee.com/cdk8s/cdk8s-mar ...
- 微信公众号开发之VS远程调试
目录 (一)微信公众号开发之VS远程调试 (二)微信公众号开发之基础梳理 (三)微信公众号开发之自动消息回复和自定义菜单 前言 微信公众平台消息接口的工作原理大概可以这样理解:从用户端到公众号端一个流 ...
- 快递Api接口 & 微信公众号开发流程
之前的文章,已经分析过快递Api接口可能被使用的需求及场景:今天呢,简单给大家介绍一下微信公众号中怎么来使用快递Api接口,来完成我们的需求和业务场景. 开发语言:Nodejs,其中用到了Neo4j图 ...
- 微信公众号开发(一)--验证服务器地址的Java实现
现在主流上都用php写微信公众号后台,其实作为后端语言之一的java也可以实现. 这篇文章将对验证服务器地址这一步做出实现. 参考资料:1.慕课网-<初识java微信公众号开发>,2.微信 ...
随机推荐
- DNS 访问 Service - 每天5分钟玩转 Docker 容器技术(138)
在 Cluster 中,除了可以通过 Cluster IP 访问 Service,Kubernetes 还提供了更为方便的 DNS 访问. kubeadm 部署时会默认安装 kube-dns 组件. ...
- 用DDK开发的9054驱动 .
和S5933比较起来,开发PLX9054比较不幸,可能是第一次开发PCI的缘故吧.因为,很多PCI的例子都是对S5933,就连微软出版的<Programming the Microsoft Wi ...
- FusionCharts MSBar2D图
1.页面展示 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> ...
- An internal error occurred during: "Requesting JavaScript AST from selection". GC overhead limit exc
1.错误描述 An internal error occurred during: "Requesting JavaScript AST from selection". ...
- Java代码输出是“father”还是“child”(二)
1.实例 /** * 以下代码输出的结果是 */ package com.you.model; /** * @author YouHaidong * 输出的结果 */ public class Fat ...
- QueryError:Incorrect result size: expected 1, actual 0
1.错误描述 QueryError:Incorrect result size: expected 1, actual 0 2.错误原因 3.解决办法
- Linux集群问题~浅谈
系统扩展的方式 # scale up 向上扩展 # scale out 向外扩展 集群类型 LB 负载均衡集群 Load Balancing HA 高可用集群 High Availability HP ...
- iOS - UIImageView 动画
1.UIImageView 动画 1.1 播放图片集 播放图片集 @property (nonatomic, strong) UIImageView *playImageView; self.play ...
- freemarker中的if...elseif...else语句(七)
freemarker中的if...elseif...else语句 1.设计示例 <#if student.studentAge lt 12> ${student.studentName}不 ...
- ajax就收data的参数
一,变量 "data": ${cityData},//数据(必传) 二,json data:{"state":"Front"},