用户
 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,登录网站

小程序社区 首页 教程 查看内容

微信小程序开发问答《七十三》登录相关问题 & 上传logo返回后不能同步 ... ...

Rolan 2017-9-14 00:49

1、微信小程序登录相关问题? 2、微信小程序的转发方法 onShareAppMessage 内可以定义转发内容之外的逻辑吗? 3、微信小程序 上传logo返回后不能同步

1、微信小程序登录相关问题?

先说下我所理解的:

  1. wx.checksession() 只能检查用code换来的session_key在微信服务器中是否过期。
  2. 而前端拿到后台生成的3rd_session, 这个3rd_session的过期时间是服务器定义的。

如果上面的理解没错的话(有错误望指出),我猜想就会出现下面两种情况:

  1. wx.checkSession()检测的微信服务器session_key并没有过期。而我们服务器3rd_session 已经过期,这时候怎么办,是否要重新走一遍登录流程。
  2. wx.checkSession()已过期,这种情况下,当然不管3rd_session是否过期,都需要重新走一遍登录流程来重置, 这样处理对吗。

根据以上,那是不是每次http请求都要先wx.checkSession()来检测是否过期呢。并且我怀疑会有情况一出现的可以,这个过期并不能判定3rd_session是否过期。

所以,感觉很混乱。想知道大家是怎么处理的。

答:我认为,既然自己的服务器已经维护了一套session,客户端是没有必要关注wx.checksession() 的。

如果想知道是否过期,问自己的服务器就好了,就像楼上所说,小程序的这些接口没有次数限制,由服务端自己去处理
1.3rd_session未过期,session_key过期,则服务器自己更新session_key就好
2.3rd_session过期,session_key未过期,更新服务器3rd_session就好(重新走流程)

可以试试将获取到的 session 登录信息存到 sessionStorage 里面。


根据文档 转发 ,小程序内的转发方法 onShareAppMessage 需要直接返回一个包含转发内容的对象,该对象内的 path 值为接受转发者看到的页面路径。例如

Page({
  onShareAppMessage: function (res) {
    return {
      title: '自定义转发标题',
      path: '/page/user?queryId=123',
      success: function(res) {
        // 转发成功
      },
    }
  }
})

假如拼接 path 值所需的 queryId 是由一个请求返回的,即不能同步获取到,例如

Page({
  onShareAppMessage: function (res) {
    let queryId = ''
    wx.request({
      url: '...',
      method: 'GET',
      success (res) {
        queryId = res.queryId
      },
    })
    return {
      title: '自定义转发标题',
      path: `/page/user?queryId=${queryId}`,
      success (res) {
        // 转发成功
      },
    }
  }
})

那么 JavaScript 有没有什么方法可以使以上的 onShareAppMessage 方法直接返回有效的 queryId 呢,用 promise 之类的话?


答:我改了那个weixin.js

还有种就是可以不传link,会动态获取当前url,也就是你可以在url上附加#aa这种,也可以获取到

3、 邀请

鲜花
鲜花
鸡蛋
鸡蛋
分享至 : QQ空间
收藏

相关阅读