文档
微信小程序没有提供路由拦截系统,我们可以自己通过应用首页作为入口,拦截所有页面
大致思路如下:
登录拦截
用户进入首页后,判断是否登录,或者执行其他全局判断的逻辑,比如:获取用户信息getUserInfo
等待请求逻辑结束之后,判断该进入哪个页面
分享拦截
1、页面
如果需要采用全局拦截判断,每个页面
的分享需要单独定义,将分享的地址统一改为/pages/index/index
,这样所有入口都统一到该页面。
page: /pages/home/home
=>
page: /pages/index/index
2、参数
微信小程序的分享链接可以带参数,不过有长度限制(生成二维码参数,最大32个可见字符),那可以将分享的参数转换为短参数,真实的参数可以存在数据库,等页面到达/pages/index/index
时,通过接口获取真实参数
params = {
"name": "Tom", "age": 12}
=>
params_id = 1
可以统一分享页面和参数,例如:
/pages/index/index?page=home&id=1
// 对应的真实参数是
page = /pages/home/home
params = {
"name": "Tom", "age": 12}
// 转换成完整路径
/pages/home/home?name=Tom&age=12