登录 | 注册
小程序交流 +关注 已有0人关注 +发表新主题

小程序如何设置公共数据?

发表在 2019-2-20 10:10 来自PC 复制链接 手机看帖 扫一扫!手机看帖更爽 0 299

本帖最后由 aoli 于 2019-2-20 10:20 编辑

  作为小程序的开发者,在小程序的开发过程中,需要共享某个数据例如:用户名称,状态等等。应该如何处理?  处理方式有很多种,可以每次通过接口在后台获取,也可以写入到某个文件中等等。这里介绍一种简单的处理方法。通过接口一次获取,缓存到公共的data
详细过程如下:
1、  在小程序的app.js中设置缓存数据的名称。
App({
onLaunch: function () {

  },
globalData: {
   userInfo: null,//微信用户数据
   appid: "",//后台appid唯一标识
   mqsysinfo: {}, // 调用login方法,微信登录成功后返回的米筷平台映射用户信息
  }
})
2、  在小程序的app.js的onLaunch方法中请求接口,获取数据。例如获取用户数据。
  // 获取用户信息
  wx.getSetting({
      success: res => {
        if(res.authSetting['scope.userInfo']) {
          // 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框
          wx.getUserInfo({
            success: res => {
             // 缓存用户数据
              this.globalData.userInfo= res.userInfo
              // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
              // 所以此处加入 callback 以防止这种情况
              if(this.userInfoReadyCallback) {
               this.userInfoReadyCallback(res)
              }
            }
          })
        }
      }
})
//请求服务器,获取相关数据
var murl =getApp().globalData.server + "/wxsmall/mqserver";
  //发起网络请求,进行服务登录
  wx.request({
    url: murl,
    method: 'POST',
    header: {
      'content-type': 'application/x-www-form-urlencoded;charset=utf-8'
    },
    data: {
      appid: getApp().globalData.appid
    },
    complete: function (res) {
      if (res && 0 == res.data.code){
//缓存服务器相关信息
        getApp().globalData.mqsysinfo= res.data.data;
      }
    }
  })

3、  其它地方使用,只需一行代码即可。
//获取使用用户数据
var userinfo=getApp().globalData.userInfo
//获取使用服务器相关数据
var serverinfo=getApp().globalData. mqsysinfo

扫描二维码,手机查看本帖
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部
快速回复 发贴