//app.js
App({
    onLaunch: function () {
        // 展示本地存储能力
        var logs = wx.getStorageSync('logs') || []
        logs.unshift(Date.now())
        wx.setStorageSync('logs', logs)

        // 登录
        wx.login({
            success: res => {
                // 发送 res.code 到后台换取 openId, sessionKey, unionId
            }
        })
        // 获取用户信息
        wx.getSetting({
            success: res => {
                if (res.authSetting['scope.userInfo']) {
                    // 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框
                    wx.getUserInfo({
                        success: res => {
                            // 可以将 res 发送给后台解码出 unionId
                            this.globalData.userInfo = res.userInfo

                            // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
                            // 所以此处加入 callback 以防止这种情况
                            if (this.userInfoReadyCallback) {
                                this.userInfoReadyCallback(res)
                            }
                        }
                    })
                }
            }
        })


        //自动更新版本
        const updateManager = wx.getUpdateManager()
        updateManager.onCheckForUpdate(function (res) {
            // 请求完新版本信息的回调
        })

        updateManager.onUpdateReady(function () {
            wx.showModal({
                title: '更新提示',
                content: '新版本已经准备好,是否重启应用?',
                success: function (res) {
                    if (res.confirm) {
                        // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
                        updateManager.applyUpdate()
                    }
                }
            })

        })

        updateManager.onUpdateFailed(function () {
            // 新的版本下载失败
            wx.showModal({
                title: '更新提示',
                content: '新版本下载失败',
                showCancel: false
            })
        })
    },

    /**
* 自定义post函数,返回Promise
* +-------------------
* @param {String} url 接口网址
* @param {arrayObject} data 要传的数组对象 like: {name: 'name', age: 32}
* +-------------------
* @return {Promise} promise 返回promise供后续操作
*/
    // url:接口地址 data:接口数据 header:请求头
    post: function (url, data, headerParams) {
        wx.showNavigationBarLoading()
        wx.showLoading({
            title: '加载中',
        })
        var promise = new Promise((resolve, reject) => {
            let that = this;
            let postData = data;
            let baseUrl = 'http://grouppay.w.bronet.cn/api/';
            //网络请求
            let header = {
                'content-type': 'application/x-www-form-urlencoded',
                'XX-Token': '123123'
            }
            // console.log(baseUrl/ + url)
            header = Object.assign(header, headerParams)
            wx.request({
                url: baseUrl + url,
                data: postData,
                method: 'POST',
                header: header,
                success: function (res) {    //返回取得的数据
                    // console.log(res)
                    if (res.data.code == '20000') {
                        resolve(res.data);
                    } else if (res.data.code == '10001') {//用户未

                    } else if (res.data.code == '40000') {
                        wx.showModal({
                            title: '提示',
                            content: res.data.msg,

                            showCancel: false,
                            success: function (res) {
                            }
                        })
                    } else if (res.data.code == '40005') {
                        wx.showModal({
                            title: '提示',
                            content: res.data.msg,
                            showCancel: false,
                            success: function (res) {

                            }
                        })
                    } else if (res.data.code == '40006') {

                    } else {
                        wx.showModal({
                            title: '提示',
                            content: res.data.msg,
                            showCancel: false,
                        })
                        reject(res.data)
                    }
                    wx.hideLoading()
                    wx.hideNavigationBarLoading()
                },
                fail: function (e) {
                    console.log(e)
                    reject('网络出错');
                    // wx.hideLoading()
                    wx.hideNavigationBarLoading()
                }
            })
        });

        return promise;
    },

    globalData: {
        userInfo: null
    }
})