//app.js function splitQueryParams(params, key) { let strParams = ''; if (Object.keys(params).length <= 0) return strParams; for (let i in params) { if (params[i] instanceof Object) { let k = key ? `${key}.${i}` : i; strParams += splitQueryParams(params[i], k); } else if (params[i] instanceof Array) { for (let j = 0; j < params[i].length; j++) { let k = key ? `${key}[${j}].${i}` : i; strParams += splitQueryParams(params[i][j], k); } } else { let k = key ? `${key}.${i}` : i; strParams += `&${k}=${params[i]}` } } return strParams; } ! function () { //获取页面配置并进行页面分享配置 var PageTmp = Page Page = function (pageConfig) { //1. 获取当前页面路由 let routerUrl = "" wx.onAppRoute(function (res) { //app.js中需要在隐式路由中才能用getCurrentPages()获取到页面路由 let pages = getCurrentPages(), view = pages[pages.length - 1]; routerUrl = view.route }) //2. 全局开启分享配置 pageConfig = Object.assign({ onShareAppMessage: function () { //根据不同路由设置不同分享内容(微信小程序分享自带参数,如非特例,不需配置分享路径) let shareInfo = {} let noGlobalSharePages = ["index/index"] //全局分享配置,如部分页面需要页面默认分享或自定义分享可以单独判断处理 if (!routerUrl.includes(noGlobalSharePages)) { shareInfo = { title: "硕为思汽车智能洞察", // imageUrl: wx.getStorageSync("shareUrl") } } return shareInfo } }, pageConfig); // 配置页面模板 PageTmp(pageConfig); } }(); App({ onLaunch: function () { // 展示本地存储能力 var logs = wx.getStorageSync('logs') || [] logs.unshift(Date.now()) wx.setStorageSync('logs', logs) const systemInfo = wx.getSystemInfoSync(); //获取系统信息 const menuInfo = wx.getMenuButtonBoundingClientRect(); // 获取胶囊按钮的信息 this.globalData.menuHeight = menuInfo.height; // 获取胶囊按钮的高 this.globalData.statusBarHeight = systemInfo.statusBarHeight; // 获取状态栏的高 this.globalData.menuRight = menuInfo.right; // 获取胶囊按钮的距离屏幕最右边的距离(此处用于设置导航栏左侧距离屏幕的距离) this.globalData.navBarHeight = (menuInfo.top - systemInfo.statusBarHeight) * 2 + menuInfo.height; // 计算出导航栏的高度 }, globalData: { imageUrl: "https://cdn.sws010.com/wxapp/images", navBarHeight: 0, // 导航栏高度 menuHeight: 0, //胶囊按钮 高度 statusBarHeight: 0, //状态栏高度 menuRight: 0, //胶囊按钮 距离屏幕右边的距离 setStorage: function(key, value, hour = 0) { let time = new Date(); wx.setStorageSync(key, {value: value, time: hour, setTime: time.getTime()}) }, getStorage: function(key) { let val = wx.getStorageSync(key); if(!val) { return false; } if(!val.time || val.time == 0) { return val.value; } else { let setTime = val.setTime; let currentTime = new Date(); if(currentTime.getTime() - setTime > val.time * 3600000) { return false; } else { return val.value; } } }, request: function (prarms, callback) { let obj = { version: "1.1.3", ...prarms } return new Promise((resolve, reject) => { wx.request({ url: 'https://cloud.sws010.com/api/v7.ashx', header: { 'content-type': 'application/x-www-form-urlencoded' //修改此处即可 }, data: splitQueryParams(obj), method: 'post', success: function (res) { //接口实际返回的内容在res.data中 if (res.data.Code == 1) { if (typeof callback === 'function') { callback(res.data); } resolve(res.data.Data); } else if (res.data.Code == -99) { wx.showModal({ title: '提示', content: "账号已过期,退出账号并清除缓存数据", success: function (res) { if (res.confirm) { wx.clearStorage() } } }) } else if (res.data.Code == -2) { wx.navigateTo({ url: "/pages/mine/pages/bindUser/index?isHome=1", }) this.getTabBar().init(); } else { reject(res.data) } }, fail: function (err) { reject(err); } }) }) }, requestImg: function (data) { let obj = { version: '1.1.2', data }; return new Promise((resolve, reject) => { wx.request({ url: 'https://saas.kaidalai.cn/word_cloud/wordCloud/getWordCloud', data: obj, method: 'post', success: function (res) { resolve(res) }, fail: function (err) { reject(err); } }) }) } }, // 版本更新 autoUpdate: function () { var self = this // 获取小程序更新机制兼容 if (wx.canIUse('getUpdateManager')) { const updateManager = wx.getUpdateManager() updateManager.onCheckForUpdate(function (res) { // 请求完新版本信息的回调 if (res.hasUpdate) { updateManager.onUpdateReady(function () { wx.showModal({ title: '更新提示', content: '新版本已经准备好,是否重启应用?', success: function (res) { if (res.confirm) { // 新的版本已经下载好,调用applyUpdate应用新版本并重启 updateManager.applyUpdate(); } else if (res.cancel) { wx.showModal({ title: '温馨提示~', content: '本次版本更新涉及到新的功能添加,旧版本无法正常访问的哦~', showCancel: false, //隐藏取消按钮 confirmText: "确定更新", //只保留确定更新按钮 success: function (res) { if (res.confirm) { //下载新版本,并重新应用 self.downLoadAndUpdate(updateManager) } } }) } } }) }) updateManager.onUpdateFailed(function () { // 新的版本下载失败 wx.showModal({ title: '已经有新版本了哟~', content: '新版本已经上线啦~,请您删除当前小程序,重新搜索打开哟~' }) }) } }) } else { // 此时微信版本太低(一般而言版本都是支持的) wx.showModal({ title: '溫馨提示', content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。' }) } }, /** * 下载小程序新版本并重启应用 */ downLoadAndUpdate: function (updateManager) { var self = this wx.showLoading(); //静默下载更新小程序新版本 updateManager.onUpdateReady(function () { wx.hideLoading() //新的版本已经下载好,调用 applyUpdate 应用新版本并重启 updateManager.applyUpdate() }) updateManager.onUpdateFailed(function () { // 新的版本下载失败 wx.showModal({ title: '已经有新版本了哟~', content: '新版本已经上线啦~,请您删除当前小程序,重新搜索打开哟~', }) }) }, onShow() { this.autoUpdate() } })