微信内置浏览器缓存第三方网页数据到Cookie

最近搞微信公众号的开发,需要本地存储数据,这就产生了一个问题,微信中能不能用localStorage存数据?查找了网上资料,简单总结一下。

首先,微信环境其实是个webview组件而已,并不是真正意义上的什么内置浏览器。

安卓版微信直接调用系统浏览器内核,它是用chrome改造做的一套WKwebView,概念上类似是一套组建, iOS则是调用safari,

所以把微信内置的第三方网页看成是在整个浏览器环境下的想法是错误的。

其次,微信内置第三方网页中localStorage等, 是可以用,

有些机型不能存储信息到localStorage中,或者是页面一旦关闭或微信退出之后,存储的信息也失效了。
百度上也有很多人吐槽这个问题,cookie和session都能解决。

于是想到用cookie来替代localStorage,存储一些简单的数据。上网查找了一下,发现w3school上已有不错的解决方案。

//设置cookie
function setCookie(key, value, expiredays){
	var exdate = new Date();
	exdate.setDate(exdate.getDate() + expiredays);
	document.cookie = key + "=" + escape(value) + ((expiredays==null) ? "" : ";expires=" + exdate.toGMTString());
}

//取回cookie
function getCookie(key){
	if(document.cookie.length > 0){
		 c_start = document.cookie.indexOf(key + "=");
		 if(c_start != -1){ 
	  	 	c_start = c_start + key.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 "";
}
$(function(){
	//alert(window.location.href);
	//setTimeout('WeixinJSBridge.call("closeWindow")', 1500);
	
	//设置cookie,365天
	setCookie("eset_cd", "18826553+12345678", 356*24*60*60*1000);
	
	alert(getCookie("eset_cd"));
});

经过测试,当杀死微信进程或者清理垃圾或者手机重启的时候,cookie缓存的信息依然存在,但是当微信通过设置退出重新登录的时候缓存就又没了。

完!!!

原文地址:https://www.cnblogs.com/toggle/p/9376997.html

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值