前言
小程序的开发过程中一般会涉及到的权限获取为:获取地理位置信息、获取微信授权、获取手机号。
而获取权限的流程一般会放在用户首次使用小程序的时候。
因为小程序默认情况下,所有页面右上角的功能按钮
是可以唤起转发
操作的,所以在小程序上线前要格外注意处理用户的转发操作。避免踩坑
小程序设计
一般情况下,公司肯定希望自己的app、小程序持有的用户量增加。所以一般会在用户首次进入小程序时要求用户授权登录,甚至有的小程序要求用户必须完成登录流程才能使用(在首页弹窗请求用户授权,逻辑也封装在/index路径下)。
这种逻辑下的转发操作要格外注意,因为转发可以跳过小程序首页的登录逻辑,造成转发页面的接口请求不成功等问题。
再踩过坑之后,总结出比较完善的登录及转发流程如下:
1 封装登录页面
因为目前微信授权和手机号授权的系统提醒都需要通过button组件触发,所以登录流程最好写成独立页面,这样方便处理逻辑。
2 触发登录页面
2.1 如果小程序要求用户一定要完成授权登录才能使用,那么让服务端在接口中添加错误判断机制,如果用户没有登录,接收到错误代码后,前段跳转至登录页面。(某些功能类或者游戏类的小程序)
2.2 如果小程序不需要用户登录即可正常浏览,只是在处理某些与账号相关功能时才要求登录,那么前端自己添加判断逻辑,跳转至登陆页。(电商类)
这里跳转登陆页需要使用:
wx.navigateTo({
url: "/pages/.../...",
})
3 登录成功后返回上一级
3.1 触发登录的页面无传参,在登录成功后直接返回,并重新加载上一级页面数据。
wx.navigateBack({
detail: 1
})
let pages = getCurrentPages();
let prevPage = pages[pages.length - 2]
prevPage.reload()
3.2 触发登录的页面有传参,在登录成功后重新调用上一级页面的onLoad(options)
方法,并通过prevPage.options
回传参数。
wx.navigateBack({
detail: 1
})
let pages = getCurrentPages();
let prevPage = pages[pages.length - 2]
prevPage.onLoad(prevPage.options)
总结
小程序的开发并不复杂,只是很多坑。例如在登录流程中经常出现小程序登录态
过期的情况,注意要在app.js中处理。
网友评论