//app.js
import router from '/utils/router.js'
App({
onLaunch: function () {
// 展示本地存储能力
var logs = wx.getStorageSync('logs') || []
logs.unshift(Date.now())
wx.setStorageSync('logs', logs)
var that = this;
// 获取当前版本号 进行强制更新
if (wx.canIUse('getUpdateManager')) {
const updateManager = wx.getUpdateManager();
updateManager.onCheckForUpdate(function (res) {
if (res.hasUpdate) {
// 弹出提示框,提示用户更新并重启小程序
updateManager.onUpdateReady(function () {
wx.showModal({
title: '更新提示',
showCancel: false,
confirmText: '马上重启',
content: '新版本已经上线,需要您重启小程序以应用新版本。',
success: function (res) {
if (res.confirm) {
// 调用 applyUpdate 应用新版本并重启
updateManager.applyUpdate();
}
}
});
});
// 新版本下载失败时弹出提示框
updateManager.onUpdateFailed(function () {
wx.showModal({
title: '更新失败',
content: '新版本下载失败,请删除当前小程序,重新搜索打开。',
});
});
}
});
} else { // 如果用户微信版本过低,则弹出提示框
wx.showModal({
title: '提示',
content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。',
});
}
// 登录
wx.login({
success: res => {
console.log("登录向后台发送数据");
// 发送 res.code 到后台换取 openId, sessionKey, unionId
wx.request({
url: 'https://*******************/WX_XCX_openId.ashx',
data: {
code: res.code,
},
method: 'GET',
success: function (xxx) {
//存起来后面要用的
console.log(xxx);
console.log("unionId:" + xxx.data.unionId);
console.log("第2步:" + xxx.data.openId);
console.log("session_key:" + xxx.data.session_key)
wx.setStorageSync('openId', xxx.data.openId)
wx.setStorageSync('session_key', xxx.data.session_key)
that.globalData.checkLogin = true;
//由于这里是网络请求,可能会在 Page.onLoad 之后才返回
// 所以此处加入 callback 以防止这种情况
if (that.checkLoginReadyCallback) {
that.checkLoginReadyCallback(res);
}
},
fail: function (res) {
console.log("向后台发送数据失败")
}
})
}
})
//监听路由切换
//间接实现全局设置分享内容
wx.onAppRoute(function (res) {
console.log(res)
//获取加载的页面
let pages = getCurrentPages(),
//获取当前页面的对象
view = pages[pages.length - 1],
data;
data = view.data;
data.timeStart = Date.now() //在当前页面的data中,记录进入页面的时间
// if(!data.addonHide) {
var oldOnHide = view.onHide // 记录单独在某些页面onhide里做的一些操作,防止全局覆盖原有页面操作
// data.addonHide = true
view['onHide'] = function (view) { //全局添加的一些操作
// 做一些我们自己想做的事情
let timeEnd = Date.now() // 记录onhide时候的时间戳(用户离开页面的操作有两种(跳转页面走的是onhide,直接关闭小程序走的是onUnload )下面onUnload 不做解释,同样的操作)
var stayTime = timeEnd - data.timeStart // 获取停留时间
console.log("输出2:" + res.path)
console.log("输出3:" + stayTime)
console.log("输出4:" + data.timeStart)
console.log("输出5:" + timeEnd)
console.log("输出6:" + JSON.stringify(res.query))
wx.request({
url: 'https://*******************/API/app.ashx',
method: 'post',
data: {
types: "jiankong",
yemian: res.path,
chuancan: JSON.stringify(res.query),
shijian: stayTime,
openId: wx.getStorageSync('openId'),
},
header: {
'content-type': 'application/x-www-form-urlencoded'
},
success: function (res) {
},
fail: function (e) {
wx.showToast({
title: '网络异常!',
duration: 2000
});
},
complete: function () {
}
});
// 调用原来的onHide方法
// oldOnHide.call(that, res)
}
var oldOnUnload = view.onUnload
view['onUnload'] = function (view) {
// 做一些我们自己想做的事情
let timeEnd = Date.now()
var stayTime = timeEnd - data.timeStart
console.log("输出2:" + res.path)
console.log("输出3:" + stayTime)
console.log("输出4:" + data.timeStart)
console.log("输出5:" + timeEnd)
console.log("输出6:" + JSON.stringify(res.query))
wx.request({
url: 'https://*************************/API/app.ashx',
method: 'post',
data: {
types: "jiankong",
yemian: res.path,
chuancan: JSON.stringify(res.query),
shijian: stayTime,
openId: wx.getStorageSync('openId'),
},
header: {
'content-type': 'application/x-www-form-urlencoded'
},
success: function (res) {
},
fail: function (e) {
wx.showToast({
title: '网络异常!',
duration: 2000
});
},
complete: function () {
}
});
// 调用原来的onUnload 方法
// oldOnUnload.call(that, res)
}
// }
})
},
router,
globalData: {
checkLogin: false,
systemInfo: {
...wx.getSystemInfoSync(),
},
},
})