美文网首页
小程序转发思考

小程序转发思考

作者: YYYYYY25 | 来源:发表于2019-06-18 16:00 被阅读0次
    前言

    小程序的开发过程中一般会涉及到的权限获取为:获取地理位置信息、获取微信授权、获取手机号。
    而获取权限的流程一般会放在用户首次使用小程序的时候。
    因为小程序默认情况下,所有页面右上角的功能按钮是可以唤起转发操作的,所以在小程序上线前要格外注意处理用户的转发操作。避免踩坑

    小程序设计

    一般情况下,公司肯定希望自己的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中处理。

    相关文章

      网友评论

          本文标题:小程序转发思考

          本文链接:https://www.haomeiwen.com/subject/phefqctx.html