zoukankan      html  css  js  c++  java
  • 微信小程序,全局变量方法的使用

    方法一:app.js 内设置全局变量(如屏宽,屏高的设置)

    1、app.js文件,定义全局变量

    /定义全局变量
    globalData:{
        userInfo:null,
        sysInfo:null,
        windowW:null,
        windowH:null
    }
    

      设置全局变量

    //举例获取手机信息
    getSys:function() {
        var that = this;
        //  这里要非常注意,微信的scroll-view必须要设置高度才能监听滚动事件,所以,需要在页面的onLoad事件中给scroll-view的高度赋值
        wx.getSystemInfo({
        success: function(res) {
        //设置变量值
          that.globalData.sysInfo=res;
          that.globalData.windowW=res.windowWidth;
          that.globalData.windowH=res.windowHeight;
        }
        })
    }
    

      最后的app.js文件

    //app.js
    App({
    //全局变量
      globalData:{
        userInfo:null,
        sysInfo:null,
        windowW:null,
        windowH:null
      },
      //启动
      onLaunch: function () {
        // 获取用户信息
       this.getUserInfo();
       this.getSys();
      },
      //获取用户信息
     getUserInfo:function(cb){
        var that = this
        wx.login({
          success: function () {
            wx.getUserInfo({
              success: function (res) {
                that.globalData.userInfo = res.userInfo
                console.log(res.userInfo);
                typeof cb == "function" && cb(that.globalData.userInfo)
              }
            })
          }
        })
      },
      //获取手机信息
      getSys:function() {
        var that = this;
        //  这里要非常注意,微信的scroll-view必须要设置高度才能监听滚动事件,所以,需要在页面的onLoad事件中给scroll-view的高度赋值
        wx.getSystemInfo({
        success: function(res) {
          console.log(res.model)
          console.log(res.pixelRatio)
          console.log(res.windowWidth)
          console.log(res.windowHeight)
          console.log(res.language)
          console.log(res.version)
          console.log(res.platform)
    //设置变量值
          that.globalData.sysInfo=res;
          that.globalData.windowW=res.windowWidth;
          that.globalData.windowH=res.windowHeight;
        }
        })
      }
      
    })
    

      使用app全局变量

    //获取app变量
    var app = getApp()
    Page({
      data: {
         barItems:[
           {id:0,title:"订单",enable:true,icon:'../../images/1.png'},
           {id:1,title:"退房",enable:false,icon:'../../images/2.png'},
           {id:2,title:"续住",enable:false,icon:'../../images/3.png'}
           ],
           hasLive:true,
      },
      onLoad:function(){
         var that = this;
        // 取值全局变量
        var sysInfo = app.globalData.sysInfo;
         console.log(app.globalData);
         that.setData({
              windowH:sysInfo.windowHeight-44,
              windoww:sysInfo.windowWidth
          });
     }
    })
    

      

    方法二:全局js设置常用值

    全局js文件(data.js)

    //对外提供接口  需要暴露在外面才能调用
    module.exports = {
        getUserKey : getUserKey,//保存登录的用户信息
        getOpenPwKey : getOpenPwKey,//保存开门的钥匙
        getUrl:getUrl,//host接口
    }
    
    //接口URL==============
    function getUrl(){
        return "http://localhost/userapp";
    }
    
    //本地保存数据的key==============
    //保存登录的用户信息
    function getUserKey(){
        return "xxx";
    }
    //保存开门的钥匙
    function getOpenPwKey() {
        return "xxx";
    }
    

      全局js使用方法

    //获得全局js变量
    var Data = require('../../../utils/data.js');
    //调用js文件方法
     Data.getUrl()+'/user/loginCommon',
     Data.getUserKey(),//"userInfo",
    

      data.js文件使用文件js

    var app = getApp();
    //获得全局js变量
    var Data = require('../../../utils/data.js');
    
    Page( {
      data: {
       
      },
    
      changeInputUser: function(e) {
        var value = e.detail.value;
        // console.log(value);
        this.setData({
          userName : value,
        })
      },
    
      changeInputPw: function(e) {
        var value = e.detail.value;
        // console.log(value);
        this.setData({
          password : value,
        })
      },
    
      loginAction: function (event) {
        console.log("dsadsad");
        var pw = this.data.password;
        var user = this.data.userName;
          console.log(user);
          console.log(pw);
         wx.showLoading({
            title: '加载中',
            mask: true
          });
          wx.request({
                url: Data.getUrl()+'/user/loginCommon',
                method: 'POST',
                data: {
                  phone:user,
                  password:pw
                },
                header: {
                    'content-type': 'application/x-www-form-urlencoded'
                    // 'Accept': 'application/x-www-form-urlencoded'
                },
                complete: function(res) {
                    wx.hideLoading();
                },
                success: function(res) {
                  
                  console.log(res);
                  wx.hideLoading();
                  if(res.data.status==500){
                    wx.setStorage({
                      key:Data.getUserKey(),//"userInfo",
                      data:res.data.data
                    })
                    wx.showToast({
                      title: '请求成功',
                      icon: 'success',
                      mask: true,
                    });
                    wx.navigateBack({
                      delta: 1
                    })
                  }else {
                    wx.showToast({
                      title: res.data.data,
                      icon: 'error',
                      mask: true,
                    });
                  }
                  
          
                }
            })
      },
    })
    

      

    来源: https://www.jianshu.com/p/e3de2c605506

  • 相关阅读:
    【转】Android Activity类应用技巧分享
    【转】LinearLayout:
    正则表达式语法
    【转】cocos2dx 详细配置!(一款C++编写的多平台2D游戏开源框架)
    子网掩码与子网的划分
    防黑阻击入侵检测之蜜罐与蜜网
    手机停机照样免费上网(无限量)
    【转】QQ邮箱挂吗让你肉鸡满天飞【提醒】
    【转】记事本也能杀毒,处理顽固程序
    [转载]虚拟的东西也会枯竭——全球IPv4地址明年初将用完
  • 原文地址:https://www.cnblogs.com/tonnytong/p/10008298.html
Copyright © 2011-2022 走看看