最近在看小程序,顺便自己也做了一下啊,发觉小程序坑真的蛮多的。
一、关于授权登录wx.login()
我想要一个手机授权登录的登录方式,但是因为是个人认证,appid没有这种权限。wx.login()针对非个人认证的小程序开发,当创建小程序项目时,用的是个人认证的appid时,则可以利用wx.login()获得一个有效的code,但是在用户确认授权登录时使用getPhotoNumber时会提示该appid没有权限。无法获取相应的信息——iv和encryptedData。
而如果我们创建项目时使用的是小程序的测试号时,利用wx.login()和getPhotoNumber时能获取以上信息,但是当我们把code传给后台时,后台无法使用code获取openid等信息。原因是,我们用测试号是获取的code不能用我们自己的appid和appSecret向微信进行访问,此时会提示code无效。
二、关于.JS文件中的对象数组。
/**
*.js文件
*/
Page({
data: {
list: [
{
name : "Lilith",
sex : "girl",
age : "20"
},
{
name : "Tony",
sex : "boy",
age : "30"
}
]
},
onLoad: function(){
console.log(this.data.list[0].name);
let name = "list[" + 0 + "].name";
this.setData({
[name]: "Json"
}),
console.log(this.data.list[0].name);
}
})
控制台显示的结果是:
如果只是访问对象数组中对象的属性值,可以直接用“this.data.数组名[数组下标].属性名”,而要修改它的值,则要先进行赋值:let name = "数组名[" + 数组下标 + "].属性名",然后再用[name]进行赋值。
三、关于.JS文件中的对象
/**
*.js文件
*/
Page({
data: {
people: {
name : "Lilith",
sex : "girl",
age : "20"
}
},
onLoad: function(){
console.log(this.data.people.name);
let name = "people.name";
this.setData({
[name]: "Json"
}),
console.log(this.data.people.name);
}
})
控制台显示的结果:
小程序在访问data里面的对象时,可以直接用“this.data.对象.属性名”,而修改值,则需要先进行赋值:let name = "对象.属性名",然后再对[name]进行赋值。
四、关于顶部导航栏
当顶部导航栏需要滑动时,会有一个灰色的滚动条,有时候我们并不需要,这是我们可以使用下面的代码把它去掉。
<!--.wxss-->
::-webkit-scrollbar{
width: 0;
height: 0;
}
五、关于前后台交互
关于数据传输,前后台传输数据都以json字符串进行传输,前台接收后台传输的数据时,需要把数据转化为json对象,可以利用JSON.parse()把json字符串转化为json对象。