You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

234 lines
7.9 KiB

3 years ago
//app.js
3 years ago
function splitQueryParams(params, key) {
3 years ago
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]}`
3 years ago
}
3 years ago
}
return strParams;
3 years ago
}
3 years ago
3 years ago
! function () {
3 years ago
//获取页面配置并进行页面分享配置
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
})
3 years ago
3 years ago
//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);
}
3 years ago
}();
3 years ago
App({
3 years ago
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, //胶囊按钮 距离屏幕右边的距离
3 years ago
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;
}
}
},
3 years ago
request: function (prarms, callback) {
let obj = {
3 years ago
version: "1.1.3",
3 years ago
...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()
}
}
})
3 years ago
} else if (res.data.Code == -2) {
3 years ago
wx.navigateTo({
url: "/pages/mine/pages/bindUser/index?isHome=1",
})
this.getTabBar().init();
3 years ago
} else {
reject(res.data)
3 years ago
}
3 years ago
},
fail: function (err) {
reject(err);
}
})
})
},
requestImg: function (data) {
let obj = {
3 years ago
version: '1.1.2',
3 years ago
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: "确定更新", //只保留确定更新按钮
3 years ago
success: function (res) {
3 years ago
if (res.confirm) {
//下载新版本,并重新应用
self.downLoadAndUpdate(updateManager)
}
3 years ago
}
3 years ago
})
3 years ago
}
3 years ago
}
3 years ago
})
3 years ago
})
updateManager.onUpdateFailed(function () {
3 years ago
// 新的版本下载失败
wx.showModal({
3 years ago
title: '已经有新版本了哟~',
content: '新版本已经上线啦~,请您删除当前小程序,重新搜索打开哟~'
3 years ago
})
3 years ago
})
}
})
} else {
// 此时微信版本太低(一般而言版本都是支持的)
wx.showModal({
title: '溫馨提示',
content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。'
})
3 years ago
}
3 years ago
},
/**
* 下载小程序新版本并重启应用
*/
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()
}
3 years ago
3 years ago
})