【精简版】前端面试宝典(微信小程序)

212 阅读3分钟

微信小程序

小程序的发布流程(开发流程)

  1. 注册微信小程序账号
  2. 获取微信小程序的AppID
  3. 下载微信小程序开发者工具
  4. 创建demo项目
  5. 去微信公众号配置域名
  6. 手机浏览
  7. 代码上传
  8. 提交审核
  9. 小程序发布

一、生命周期函数

  • onLoad():页面加载时触发,只会调用一次,在onLoad()函数中,可以通过option获取当前页面路径中的参数
  • onShow():页面显示时调用,也就是切换页面的时候,或者切入前台的时候触发,可以多次触发
  • onHide:页面隐藏时调用,例如使用wx.navigateTo 只是打开新页面,并不关闭原页面
  • onError:脚本错误或 API 调用报错时触发
  • onUnload:页面被卸载,例如使用wx.redirectTo重定向一个页面,原页面已经关闭

小程序支付如何实现

  1. 小程序注册,要以公司的身份去注册一个小程序,才有微信支付权限
  2. 绑定商户号
  3. 在小程序填写合法域
  4. 调用wx.login()获取appid
  5. 调用 wx.requestPayment(),代码如下
wx.requestPayment({
    'timeStamp': ' ' //时间戳从1970年1月1日00:00:00至今的秒数,即当前的时间
    'nonceStr': ' ' //随机字符串,长度为32个字符以下。
    'package': ' ' //统一下单接口返回的 prepay_id 参数值,提交格式如:prepay_id=*
    'signType': 'MD5' //签名类型,默认为MD5,支持HMAC-SHA256和MD5。注意此处需与统一下单的签名类型一致
    'paySign': ' ' //签名,具体签名方案参见微信公众号支付帮助文档;  
    'success':function(res){} //成功回调    'fail':function(res){},//失败  
    'complete':function(res){} //接口调用结束的回调函数(调用成功、失败都会执行) 
})

API

常用API

转发

简述 wx.navigateTo(),wx.redirectTo(),wx.switchTab(),wx.navigateBack(),wx.reLaunch()的区别

  • wx.navigateTo():保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面
  • wx.redirectTo():关闭当前页面,跳转到应用内的某个页面。但是不能跳转 tabbar 页面
  • wx.switchTab():跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面
  • wx.navigateBack():关闭当前页面,返回上一页面或多级页面。可通过getCurrentPages() 获取当前的页面栈,决定需要返回几层
  • wx.reLaunch():关闭所有页面,打开到应用内的某个页面

微信小程序登录流程

image.png

  • 通过 wx.login() 获取到用户的code判断用户是否授权读取用户信息,调用wx.getUserInfo 读取用户数据
  • 由于小程序后台授权域名无法授权微信的域名,所以需要自身后端调用微信服务器获取用户信息
  • 通过 wx.request() 方法请求业务方服务器,后端把 appid , appsecret 和 code 一起发送到微信服务器。 appid 和 appsecret 都是微信提供的,可以在管理员后台找到
  • 微信服务器返回了 openid 及本次登录的会话密钥 session_key
  • 后端从数据库中查找 openid ,如果没有查到记录,说明该用户没有注册,如果有记录,则继续往下走
  • session_key 是对用户数据进行加密签名的密钥。为了自身应用安全,session_key 不应该在网络上传输
  • 然后生成 session并返回给小程序
  • 小程序把 session 存到 storage 里面
  • 下次请求时,先从 storage 里面读取,然后带给服务端
  • 服务端对比 session 对应的记录,然后校验有效期