701 lines
21 KiB
Vue
701 lines
21 KiB
Vue
<script>
|
||
import config from '@/common/config.js'
|
||
import {isH5Android} from '@/utils/app.js'
|
||
import {init} from '@/utils/init.js'
|
||
import {cacheClearAll} from '@/store/cashe.js'
|
||
import store from './store/index.js'
|
||
export default {
|
||
onLaunch: function() {
|
||
console.log('onLaunch')
|
||
cacheClearAll()
|
||
// #ifdef H5
|
||
//防止刷新过快
|
||
if(process.env.NODE_ENV === 'production'){
|
||
const prveTime=uni.getStorageSync('time')
|
||
const time=Date.now()
|
||
uni.setStorageSync('time',time)
|
||
if(prveTime&&time-prveTime<=2000){
|
||
uni.setStorageSync('isDisabledAll',true)
|
||
uni.request=()=>{
|
||
|
||
}
|
||
uni.removeStorageSync('prveTime')
|
||
return uni.showToast({
|
||
title:'休息一会儿吧,你刷新的太过频繁了!',
|
||
icon:'error'
|
||
})
|
||
}else{
|
||
uni.removeStorageSync('isDisabledAll')
|
||
}
|
||
}
|
||
// #endif
|
||
|
||
|
||
let that = this
|
||
// #ifdef MP-WEIXIN || MP-TOUTIAO
|
||
//是否开启小程序自动登录 881
|
||
this.$u.get('/app/common/type/881').then(res => {
|
||
if (res.code == 0 && res.data) {
|
||
if (res.data.value == '是') {
|
||
//没有登录的时候开始自动登录
|
||
if (!uni.getStorageSync('token')) {
|
||
uni.login({
|
||
provider: 'weixin',
|
||
success: function(loginRes) {
|
||
console.log(loginRes, 'code')
|
||
// #ifdef MP-WEIXIN
|
||
let data = {
|
||
code: loginRes.code
|
||
}
|
||
that.$Request.get('/app/Login/wxLogin', data).then(res => {
|
||
if (res.code == 0 && res.data) {
|
||
uni.setStorageSync('openId', res.data.open_id)
|
||
uni.setStorageSync('unionId', res.data.unionId)
|
||
uni.setStorageSync('sessionkey', res.data
|
||
.session_key)
|
||
|
||
let invitationCode = '';
|
||
if (uni.getStorageSync('invitation')) {
|
||
invitationCode = uni.getStorageSync(
|
||
'invitation')
|
||
}
|
||
let qdCodeion = ''
|
||
if (uni.getStorageSync('qdCodeion')) {
|
||
qdCodeion = uni.getStorageSync('qdCodeion')
|
||
}
|
||
let sendData = {
|
||
openId: uni.getStorageSync('openId'),
|
||
unionId: uni.getStorageSync('unionId'),
|
||
userName: '游客',
|
||
avatar: '/static/images/logo.png',
|
||
sex: 1, //性别
|
||
inviterCode: invitationCode, //别人登录进来携带你的邀请码
|
||
qdCode: qdCodeion
|
||
};
|
||
let postData = {
|
||
openId: sendData.openId, //小程序openId
|
||
unionId: sendData.unionId, //unionId
|
||
userName: sendData.userName, //微信名称
|
||
avatar: sendData.avatar, //头像
|
||
sex: sendData.sex, //性别
|
||
phone: '',
|
||
inviterCode: sendData.inviterCode,
|
||
qdCode: sendData.qdCode
|
||
};
|
||
that.$Request.postJson(
|
||
'/app/Login/insertWxUser', postData)
|
||
.then(
|
||
res => {
|
||
uni.hideLoading();
|
||
if (res.code == 0) {
|
||
uni.setStorageSync('token', res
|
||
.token)
|
||
uni.setStorageSync('userName',
|
||
res.user.userName)
|
||
uni.setStorageSync('avatar',
|
||
res.user.avatar)
|
||
uni.setStorageSync('phone', res
|
||
.user.phone)
|
||
uni.setStorageSync(
|
||
'invitationCode', res
|
||
.user
|
||
.invitationCode)
|
||
if (res.user.qdCode) {
|
||
uni.setStorageSync(
|
||
'qdCode', res.user
|
||
.qdCode)
|
||
}
|
||
uni.setStorageSync('autoPrice',
|
||
res.user.autoPrice)
|
||
uni.setStorageSync('sex', res
|
||
.user.sex)
|
||
uni.setStorageSync('userId',
|
||
res.user.userId)
|
||
uni.setStorageSync('openId',
|
||
res.user.openId)
|
||
that.$u.api.userVip({
|
||
userId: uni
|
||
.getStorageSync(
|
||
'userId')
|
||
}).then(rest => {
|
||
if (rest.code ==
|
||
0 && rest
|
||
.data && rest
|
||
.data.isVip ==
|
||
2) {
|
||
uni.setStorageSync(
|
||
'isVIP',
|
||
true)
|
||
} else {
|
||
uni.setStorageSync(
|
||
'isVIP',
|
||
false)
|
||
}
|
||
})
|
||
}
|
||
})
|
||
}
|
||
})
|
||
// #endif
|
||
// #ifdef MP-TOUTIAO
|
||
|
||
let data = {
|
||
code: loginRes.code,
|
||
anonymous_code: loginRes.anonymousCode
|
||
}
|
||
that.$Request.post('/app/Login/dyLogin', data).then(res => {
|
||
if (res.code == 0) {
|
||
let invitationCode = '';
|
||
if (uni.getStorageSync('invitation')) {
|
||
invitationCode = uni.getStorageSync(
|
||
'invitation')
|
||
}
|
||
let qdCodeion = ''
|
||
if (uni.getStorageSync('qdCodeion')) {
|
||
qdCodeion = uni.getStorageSync('qdCodeion')
|
||
}
|
||
that.$Request.postJson(
|
||
'/app/Login/dyRegister', {
|
||
userName: '游客', //抖音名称
|
||
avatar: '/static/images/logo.png', //头像
|
||
sex: 1, //性别
|
||
// phone: '',
|
||
inviterCode: invitationCode,
|
||
dyOpenId: res.data.dyOpenId,
|
||
qdCode: qdCodeion
|
||
}).then(ress => {
|
||
uni.hideLoading()
|
||
if (ress.code == 0) {
|
||
uni.setStorageSync('token',
|
||
ress.token)
|
||
uni.setStorageSync('userName',
|
||
ress.user.userName)
|
||
uni.setStorageSync('avatar',
|
||
ress.user.avatar)
|
||
uni.setStorageSync('phone',
|
||
ress.user.phone)
|
||
uni.setStorageSync(
|
||
'invitationCode', ress
|
||
.user
|
||
.invitationCode)
|
||
if (ress.user.qdCode) {
|
||
uni.setStorageSync(
|
||
'qdCode', ress.user
|
||
.qdCode)
|
||
}
|
||
uni.setStorageSync('sex', ress
|
||
.user.sex)
|
||
uni.setStorageSync('userId',
|
||
ress.user.userId)
|
||
uni.setStorageSync('openId',
|
||
ress.user.dyOpenId)
|
||
that.$u.api.userVip({
|
||
userId: uni
|
||
.getStorageSync(
|
||
'userId')
|
||
}).then(rest => {
|
||
if (rest.code ==
|
||
0 && rest
|
||
.data && rest
|
||
.data.isVip ==
|
||
2) {
|
||
uni.setStorageSync(
|
||
'isVIP',
|
||
true)
|
||
} else {
|
||
uni.setStorageSync(
|
||
'isVIP',
|
||
false)
|
||
}
|
||
})
|
||
}
|
||
|
||
})
|
||
|
||
}
|
||
})
|
||
// #endif
|
||
|
||
// #ifdef MP-KUAISHOU
|
||
let data = {
|
||
code: loginRes.code,
|
||
}
|
||
that.$Request.post('/app/Login/ksLogin', data).then(res => {
|
||
if (res.code == 0) {
|
||
let invitationCode = '';
|
||
if (uni.getStorageSync('invitation')) {
|
||
invitationCode = uni.getStorageSync(
|
||
'invitation')
|
||
}
|
||
let qdCodeion = '';
|
||
if (uni.getStorageSync('qdCodeion')) {
|
||
qdCodeion = uni.getStorageSync('qdCodeion')
|
||
}
|
||
|
||
that.$Request.postJson(
|
||
'/app/Login/ksRegister', {
|
||
userName: '游客', //名称
|
||
avatar: '/static/images/logo.png', //头像
|
||
sex: 1, //性别
|
||
// phone: '',
|
||
inviterCode: invitationCode,
|
||
ksOpenId: res.data.ksOpenId,
|
||
qdCode: qdCodeion
|
||
}).then(ress => {
|
||
uni.hideLoading()
|
||
if (ress.code == 0) {
|
||
uni.setStorageSync('token',
|
||
ress.token)
|
||
uni.setStorageSync('userName',
|
||
ress.user.userName)
|
||
uni.setStorageSync('avatar',
|
||
ress.user.avatar)
|
||
uni.setStorageSync('phone',
|
||
ress.user.phone)
|
||
uni.setStorageSync(
|
||
'invitationCode', ress
|
||
.user
|
||
.invitationCode)
|
||
if (ress.user.qdCode) {
|
||
uni.setStorageSync(
|
||
'qdCode', ress.user
|
||
.qdCode)
|
||
}
|
||
uni.setStorageSync('sex', ress
|
||
.user.sex)
|
||
uni.setStorageSync('userId',
|
||
ress.user.userId)
|
||
uni.setStorageSync('openId',
|
||
ress.user.ksOpenId)
|
||
that.$u.api.userVip({
|
||
userId: uni
|
||
.getStorageSync(
|
||
'userId')
|
||
}).then(rest => {
|
||
if (rest.code ==
|
||
0 && rest
|
||
.data && rest
|
||
.data.isVip ==
|
||
2) {
|
||
uni.setStorageSync(
|
||
'isVIP',
|
||
true)
|
||
} else {
|
||
uni.setStorageSync(
|
||
'isVIP',
|
||
false)
|
||
}
|
||
})
|
||
}
|
||
|
||
})
|
||
}
|
||
})
|
||
// #endif
|
||
}
|
||
});
|
||
}
|
||
}
|
||
}
|
||
});
|
||
// #endif
|
||
|
||
|
||
// setInterval(d => { //定时器,定时去调取聊天未读消息
|
||
// let userId = uni.getStorageSync('userId')
|
||
// if (userId) {
|
||
// this.$Request.getT('/app/message/selectMessageCount').then(res => {
|
||
// if (res.code === 0) {
|
||
// let num = res.data
|
||
// uni.setStorageSync('numCount', num)
|
||
// if (num == 0) {
|
||
// uni.removeTabBarBadge({
|
||
// index: 3
|
||
// })
|
||
// } else {
|
||
// uni.setTabBarBadge({
|
||
// index: 3,
|
||
// text: num + ''
|
||
// })
|
||
// }
|
||
// }
|
||
// });
|
||
// }
|
||
// }, 3000);
|
||
|
||
|
||
//#ifdef APP-PLUS
|
||
// APP检测更新 具体打包流程可以参考:https://ask.dcloud.net.cn/article/35667
|
||
plus.screen.lockOrientation('portrait-primary'); //竖屏正方向锁定
|
||
//获取是否热更新过
|
||
const updated = uni.getStorageSync('updated'); // 尝试读取storage
|
||
if (updated.completed === true) {
|
||
// 如果上次刚更新过
|
||
// 删除安装包及安装记录
|
||
console.log('安装记录被删除,更新成功');
|
||
uni.removeSavedFile({
|
||
filePath: updated.packgePath,
|
||
success: res => {
|
||
uni.removeStorageSync('updated');
|
||
}
|
||
});
|
||
} else if (updated.completed === false) {
|
||
uni.removeStorageSync('updated');
|
||
plus.runtime.install(updated.packgePath, {
|
||
force: true
|
||
});
|
||
uni.setStorage({
|
||
key: 'updated',
|
||
data: {
|
||
completed: true,
|
||
packgePath: updated.packgePath
|
||
},
|
||
success: res => {
|
||
console.log('成功安装上次的更新,应用需要重启才能继续完成');
|
||
}
|
||
});
|
||
uni.showModal({
|
||
title: '温馨提示',
|
||
content: '应用将重启以完成更新',
|
||
showCancel: false,
|
||
complete: () => {
|
||
plus.runtime.restart();
|
||
}
|
||
});
|
||
} else {
|
||
//获取当前系统版本信息
|
||
plus.runtime.getProperty(plus.runtime.appid, widgetInfo => {
|
||
//请求后台接口 解析数据 对比版本
|
||
that.$Request.getT('/app/user/selectNewApp').then(res => {
|
||
res = res.data[0];
|
||
console.log(widgetInfo)
|
||
console.log(res)
|
||
let version;
|
||
if (uni.getSystemInfoSync().platform == 'android') {
|
||
version = res.version
|
||
}
|
||
if (uni.getSystemInfoSync().platform == 'ios') {
|
||
version = res.iosVersion
|
||
}
|
||
version = res.version
|
||
// && uni.getSystemInfoSync().platform == 'android'
|
||
if (widgetInfo.version < version) {
|
||
let downloadLink = '';
|
||
let androidLink = res.androidWgtUrl;
|
||
let iosLink = res.iosWgtUrl;
|
||
let ready = false;
|
||
//校验是是不是热更新
|
||
if (res.wgtUrl.match(RegExp(/.wgt/))) {
|
||
// 判断系统类型
|
||
if (plus.os.name.toLowerCase() === 'android') {
|
||
console.log('安卓系统');
|
||
if (androidLink && androidLink !== '#') {
|
||
// 我这里默认#也是没有地址,请根据业务自行修改
|
||
console.log('发现下载地址');
|
||
// 安卓:创建下载任务
|
||
if (androidLink.match(RegExp(/.wgt/))) {
|
||
console.log('确认wgt热更新包');
|
||
downloadLink = androidLink;
|
||
ready = true;
|
||
} else {
|
||
console.log('安卓推荐.wgt强制更新,.apk的强制更新请您自行修改程序');
|
||
}
|
||
} else {
|
||
console.log('下载地址是空的,无法继续');
|
||
}
|
||
} else {
|
||
console.log('苹果系统');
|
||
if (iosLink && iosLink !== '#') {
|
||
// 我这里默认#也是没有地址,请根据业务自行修改
|
||
console.log('发现下载地址');
|
||
// 苹果(A):进行热更新(如果iosLink是wgt更新包的下载地址)判断文件名中是否含有.wgt
|
||
if (iosLink.match(RegExp(/.wgt/))) {
|
||
console.log('确认wgt热更新包');
|
||
downloadLink = iosLink;
|
||
ready = true;
|
||
} else {
|
||
console.log('苹果只支持.wgt强制更新');
|
||
}
|
||
} else {
|
||
console.log('下载地址是空的,无法继续');
|
||
}
|
||
}
|
||
if (ready) {
|
||
console.log('任务开始');
|
||
let downloadTask = uni.downloadFile({
|
||
url: downloadLink,
|
||
success: res => {
|
||
if (res.statusCode === 200) {
|
||
// 保存下载的安装包
|
||
console.log('保存安装包');
|
||
uni.saveFile({
|
||
tempFilePath: res.tempFilePath,
|
||
success: res => {
|
||
const packgePath = res
|
||
.savedFilePath;
|
||
// 保存更新记录到stroage,下次启动app时安装更新
|
||
uni.setStorage({
|
||
key: 'updated',
|
||
data: {
|
||
completed: false,
|
||
packgePath: packgePath
|
||
},
|
||
success: () => {
|
||
console
|
||
.log(
|
||
'成功保存记录'
|
||
);
|
||
}
|
||
});
|
||
// 任务完成,关闭下载任务
|
||
console.log(
|
||
'任务完成,关闭下载任务,下一次启动应用时将安装更新'
|
||
);
|
||
downloadTask.abort();
|
||
downloadTask = null;
|
||
}
|
||
});
|
||
}
|
||
}
|
||
});
|
||
} else {
|
||
console.log('下载地址未准备,无法开启下载任务');
|
||
}
|
||
} else {
|
||
//不是热更新是在线更新 校验是否强制升级
|
||
|
||
if (res.method == "true") {
|
||
uni.showModal({
|
||
showCancel: false,
|
||
title: '发现新版本',
|
||
confirmText: '立即更新',
|
||
content: res.des,
|
||
success: res => {
|
||
if (res.confirm) {
|
||
plus.runtime.openURL(config.APIHOST2 +
|
||
'/pages/login/appEq')
|
||
return
|
||
uni.showLoading({
|
||
title: '下载中...',
|
||
mask: true
|
||
});
|
||
if (uni.getSystemInfoSync().platform ==
|
||
'android') {
|
||
uni.downloadFile({
|
||
url: androidLink,
|
||
success: downloadResult => {
|
||
console.log(
|
||
downloadResult
|
||
)
|
||
if (downloadResult
|
||
.statusCode ===
|
||
200) {
|
||
plus.runtime
|
||
.install(
|
||
downloadResult
|
||
.tempFilePath, {
|
||
force: false
|
||
},
|
||
d => {
|
||
console
|
||
.log(
|
||
'install success...'
|
||
);
|
||
plus.runtime
|
||
.restart();
|
||
},
|
||
e => {
|
||
console
|
||
.log(
|
||
e
|
||
)
|
||
console
|
||
.error(
|
||
'install fail...'
|
||
);
|
||
}
|
||
);
|
||
// plus.io.resolveLocalFileSystemURL(downloadResult.tempFilePath, entry => {
|
||
// entry.getParent(_oldFile=>{
|
||
// entry.moveTo(_oldFile,'.apk',newFilePath=>{
|
||
// console.log('newFilePath',newFilePath.fullPath)
|
||
|
||
// })
|
||
// })
|
||
// })
|
||
|
||
}
|
||
}
|
||
});
|
||
}
|
||
if (uni.getSystemInfoSync().platform ==
|
||
'ios') {
|
||
plus.runtime.openURL(iosLink, function(
|
||
res) {});
|
||
}
|
||
} else if (res.cancel) {
|
||
console.log('取消');
|
||
}
|
||
}
|
||
});
|
||
} else {
|
||
uni.showModal({
|
||
title: '发现新版本',
|
||
confirmText: '立即更新',
|
||
cancelText: '下次更新',
|
||
content: res.des,
|
||
success: res => {
|
||
if (res.confirm) {
|
||
plus.runtime.openURL(config.APIHOST2 +
|
||
'/pages/login/appEq')
|
||
return
|
||
uni.showLoading({
|
||
title: '下载中...',
|
||
mask: true
|
||
});
|
||
if (uni.getSystemInfoSync().platform ==
|
||
'android') {
|
||
uni.downloadFile({
|
||
url: androidLink,
|
||
success: downloadResult => {
|
||
if (downloadResult
|
||
.statusCode ===
|
||
200) {
|
||
plus.runtime
|
||
.install(
|
||
downloadResult
|
||
.tempFilePath, {
|
||
force: false
|
||
},
|
||
d => {
|
||
console
|
||
.log(
|
||
'install success...'
|
||
);
|
||
plus.runtime
|
||
.restart();
|
||
},
|
||
e => {
|
||
console
|
||
.log(
|
||
e
|
||
)
|
||
console
|
||
.error(
|
||
'install fail...'
|
||
);
|
||
}
|
||
);
|
||
// plus.io.resolveLocalFileSystemURL(downloadResult.tempFilePath, entry => {
|
||
// entry.getParent(_oldFile=>{
|
||
// entry.moveTo(_oldFile,'.apk',newFilePath=>{
|
||
// console.log('newFilePath',newFilePath.fullPath)
|
||
// plus.runtime
|
||
// .install(newFilePath.fullPath, { force: false },
|
||
// d => {
|
||
// console
|
||
// .log(
|
||
// 'install success...'
|
||
// );
|
||
// plus.runtime
|
||
// .restart();
|
||
// },
|
||
// e => {
|
||
// console.log(e)
|
||
// console
|
||
// .error(
|
||
// 'install fail...'
|
||
// );
|
||
// }
|
||
// );
|
||
// })
|
||
// })
|
||
// })
|
||
}
|
||
}
|
||
});
|
||
}
|
||
if (uni.getSystemInfoSync().platform ==
|
||
'ios') {
|
||
plus.runtime.openURL(iosLink, function(
|
||
res) {});
|
||
}
|
||
} else if (res.cancel) {
|
||
console.log('取消');
|
||
}
|
||
}
|
||
});
|
||
}
|
||
}
|
||
}
|
||
});
|
||
});
|
||
}
|
||
//#endif
|
||
|
||
},
|
||
onShow: function() {
|
||
init()
|
||
|
||
// #ifdef H5
|
||
// isH5Android()
|
||
// #endif
|
||
|
||
console.log('App Show')
|
||
// #ifdef APP-PLUS
|
||
let userId = uni.getStorageSync('userId')
|
||
if (userId) {
|
||
let clientid = plus.push.getClientInfo().clientid;
|
||
let sysPhone = 1;
|
||
if (plus.os.name.toLowerCase() === 'android') {
|
||
sysPhone = 1;
|
||
} else {
|
||
sysPhone = 2;
|
||
}
|
||
this.$Request.getT('/app/user/updateClientId?clientId=' + clientid + '&userId=' +
|
||
userId + '&sysPhone=' + sysPhone).then(res => {
|
||
|
||
});
|
||
}
|
||
// #endif
|
||
|
||
|
||
// this.$u.get('/app/common/type/109').then(res => { // 是否开启公众号自动注册 109
|
||
// if (res.code == 0 && res.data) {
|
||
// uni.setStorageSync('kefu', res.data.value)
|
||
// }
|
||
// });
|
||
|
||
|
||
// #ifdef H5
|
||
if (!/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {
|
||
//是否开启pc端使用 850
|
||
this.$u.get('/app/common/type/850').then(res => {
|
||
if (res.code == 0 && res.data && res.data.value === '否') {
|
||
if (window.location.href.indexOf('/pages/me/erweimaRegister') === -1) {
|
||
uni.reLaunch({
|
||
url: '/pages/me/erweimaRegister'
|
||
})
|
||
}
|
||
}
|
||
});
|
||
}
|
||
// #endif
|
||
|
||
|
||
},
|
||
onHide: function() {
|
||
console.log('App Hide')
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<style lang="scss">
|
||
/* 注意要写在第一行,同时给style标签加入lang="scss"属性 */
|
||
@import "uview-ui/index.scss";
|
||
@import 'components/colorui/main.css';
|
||
@import 'components/colorui/icon.css';
|
||
@import '@/common/style/common.scss';
|
||
@import './tuniao-ui/index.scss';
|
||
@import './tuniao-ui/iconfont.css';
|
||
</style> |