在微信小程序环境下,获取window对象

在微信小程序环境下,获取window对象,第1张

本文中的方法并不能用于实际小程序项目,仅供学习交流!!

众所周知,微信小程序的js中不能使用 window对象 以及 document对象 。

难道他们真的不存在吗?事实并非如此。

熟悉this的同学都知道,在浏览器环境下,触发一个立即执行函数时,其中this的指向往往都是window对象。

这段js在小程序中是同样有效的,所以window对象确实存在。

window对象中包含了很多对象,如wx、Page、Component、Behavior等变量,你可以试试看。

不过在严格模式下,this就指向了undefined。而且es6转es5时也默认开启了严格模式。

如果你想尝试,首先你需要在微信开发工具中选择右上角的 详情-项目设置 取消选中ES6转ES5即可

获取到了window对象,我们就可以获取其他全局变量

当我们js报错时,其路由前面部分是一样的。

在控制台中,我们可以看到微信小程序的html部分的源码。

在实际开发中我们可以利用这个方法,把一些全局方法给转移或清除掉,比如alert。

1、非严格模式下,可以获取window对象。

2、可以在window中扩展自己的全局变量,当然并不推荐这样做。

3、各种你能想到的 *** 作...

此文仅供交流,如有不当,请指正。

微信小程序有两种获取用户信息的方案。

1、不包含敏感信息openId 的json对象(包含:nickname、avatarUrl等基本信息) 

2、包含敏感信息openId的基本信息。

第一种获取方案

1、首先调用wx.login()接口 让用户授权验证,也就是我们肉眼观察到的,你是否对xxxxx授权这种信息。 

2、用户成功授权后,调用wx.getUserInfo() 接口获取用户信息。

完整代码如下

wx.login({ success:function(){ wx.getUserInfo({  success:function(res){  var simpleUser = res.userInfo  console.log(simpleUser.nickName)  } }) }})

第二种比较复杂了,需要与后台进行交互才能获得userInfo,但是这种方案获得的数据是完整的(包含openId)。

1、调用wx.login()接口 授权 在success 成功函数的参数中包含code。 

2、调用wx.getUserInfo()接口success 函数中包含encryptedData、iv 

3、将上述参数传给后台解析,生成userInfo


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11333258.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存