first commit
This commit is contained in:
264
App.vue
Normal file
264
App.vue
Normal file
@ -0,0 +1,264 @@
|
||||
<script>
|
||||
import utils from './common/utils.js';
|
||||
import config from './config.js';
|
||||
export default {
|
||||
onLaunch: function(e) {
|
||||
// 隐私政策
|
||||
// #ifdef APP-PLUS
|
||||
this.isFirstEnter();
|
||||
// #endif
|
||||
console.log('App Launch');
|
||||
//#ifdef MP-WEIXIN
|
||||
//检查更新
|
||||
this.updateManager();
|
||||
//#endif
|
||||
let self = this;
|
||||
// #ifdef APP-PLUS
|
||||
plus.runtime.getProperty(plus.runtime.appid, function(widgetInfo) {
|
||||
uni.request({
|
||||
url: config.app_url + '/index.php/api/index/update',
|
||||
data: {
|
||||
version: widgetInfo.version,
|
||||
name: widgetInfo.name,
|
||||
app_id: config.app_id,
|
||||
platform: uni.getSystemInfoSync().platform
|
||||
},
|
||||
success: result => {
|
||||
var data = result.data.data.result;
|
||||
if (data.update && data.wgtUrl) {
|
||||
self.updateWgt(data.wgtUrl);
|
||||
}
|
||||
if (data.update && data.pkgUrl) {
|
||||
plus.nativeUI.confirm(
|
||||
'有新版本更新,请点击确认更新到最新版本,以免影响使用',
|
||||
function(e) {
|
||||
if (e.index == 0) {
|
||||
plus.runtime.openURL(data.pkgUrl);
|
||||
}
|
||||
},
|
||||
{
|
||||
title: '更新提示',
|
||||
buttons: ['确定', '取消'],
|
||||
verticalAlign: 'center'
|
||||
}
|
||||
);
|
||||
}
|
||||
},
|
||||
error: error => {
|
||||
console.log('----------------error');
|
||||
console.log(error);
|
||||
}
|
||||
});
|
||||
});
|
||||
// #endif
|
||||
//应用启动参数
|
||||
this.onStartupScene(e.query);
|
||||
// #ifndef APP-PLUS
|
||||
//#endif
|
||||
this.getNav();
|
||||
},
|
||||
beforeCreate() {},
|
||||
onShow: function() {
|
||||
// console.log('App Show')
|
||||
},
|
||||
onHide: function() {
|
||||
//console.log('App Hide')
|
||||
},
|
||||
methods: {
|
||||
isFirstEnter() {
|
||||
var firstEnter = uni.getStorageSync('firstEnter'); //同步获取缓存中是否有首次进入字段
|
||||
let self = this;
|
||||
uni.getSystemInfo({
|
||||
success(data) {
|
||||
console.log('firstEnter=' + firstEnter);
|
||||
// 如果是ios并且没有firstEnter缓存则弹出模态框
|
||||
if (data.platform == 'ios' && !firstEnter) {
|
||||
console.log('---------------');
|
||||
uni.navigateTo({
|
||||
url: '/pages/privacy/privacy'
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
updateManager: function() {
|
||||
const updateManager = uni.getUpdateManager();
|
||||
updateManager.onCheckForUpdate(function(res) {
|
||||
// 请求完新版本信息的回调
|
||||
if (res.hasUpdate) {
|
||||
updateManager.onUpdateReady(function(res2) {
|
||||
uni.showModal({
|
||||
title: '更新提示',
|
||||
content: '新版本已经准备好,即将重启应用',
|
||||
showCancel: false,
|
||||
success(res2) {
|
||||
if (res2.confirm) {
|
||||
// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
|
||||
updateManager.applyUpdate();
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
updateManager.onUpdateFailed(function(res) {
|
||||
// 新的版本下载失败
|
||||
uni.showModal({
|
||||
title: '更新提示',
|
||||
content: '检查到有新版本,但下载失败,请检查网络设置',
|
||||
showCancel: false
|
||||
});
|
||||
});
|
||||
},
|
||||
/**
|
||||
* 小程序启动场景
|
||||
*/
|
||||
onStartupScene(query) {
|
||||
// 获取场景值
|
||||
let scene = utils.getSceneData(query);
|
||||
// 记录推荐人id
|
||||
let refereeId = query.referee_id;
|
||||
if (refereeId > 0) {
|
||||
if (!uni.getStorageSync('referee_id')) {
|
||||
uni.setStorageSync('referee_id', refereeId);
|
||||
}
|
||||
}
|
||||
// 记录分销人id
|
||||
let uid = scene.uid;
|
||||
if (uid > 0) {
|
||||
uni.setStorageSync('referee_id', uid);
|
||||
}
|
||||
// 邀请有礼id
|
||||
let invitation_id = query.invitation_id;
|
||||
if (invitation_id > 0) {
|
||||
uni.setStorageSync('invitation_id', invitation_id);
|
||||
}
|
||||
let invitid = scene.invitid;
|
||||
if (invitid > 0) {
|
||||
uni.setStorageSync('invitation_id', invitid);
|
||||
}
|
||||
// 如果是h5,设置app_id
|
||||
// #ifdef H5
|
||||
let appId = query.app_id;
|
||||
if (appId > 0) {
|
||||
uni.setStorageSync('app_id', appId);
|
||||
}
|
||||
if (uni.getStorageSync('app_id')) {
|
||||
this.config.app_id = uni.getStorageSync('app_id');
|
||||
}
|
||||
// #endif
|
||||
},
|
||||
getNav() {
|
||||
uni.request({
|
||||
url: this.config.app_url + '/index.php/api/index/nav',
|
||||
data: {
|
||||
app_id: this.config.app_id
|
||||
},
|
||||
success: result => {
|
||||
let vars = result.data.data.vars.data;
|
||||
let theme = result.data.data.theme.theme;
|
||||
this.$store.commit('changePoints', result.data.data.points_name);
|
||||
this.$store.commit('changeTheme', theme);
|
||||
uni.setStorageSync('TabBar', vars);
|
||||
uni.setStorageSync('theme', theme);
|
||||
}
|
||||
});
|
||||
},
|
||||
updateWgt(wgtUrl) {
|
||||
uni.showModal({
|
||||
title: '版本更新',
|
||||
content: '检查到有新版本,请点击更新',
|
||||
confirmText: '更新',
|
||||
showCancel: false,
|
||||
success: function(e) {
|
||||
if (e.confirm) {
|
||||
var dtask = plus.downloader.createDownload(wgtUrl, {}, function(d, status) {
|
||||
uni.showToast({
|
||||
title: '下载完成',
|
||||
mask: false,
|
||||
duration: 1000
|
||||
});
|
||||
// 下载完成
|
||||
if (status == 200) {
|
||||
plus.runtime.install(
|
||||
d.filename,
|
||||
{
|
||||
force: true
|
||||
},
|
||||
function() {
|
||||
console.log('install success...');
|
||||
plus.nativeUI.alert(
|
||||
'已更新至最新版本,确定后将重启应用',
|
||||
function() {
|
||||
plus.runtime.restart();
|
||||
},
|
||||
'更新提示',
|
||||
'确定'
|
||||
);
|
||||
},
|
||||
function(e) {
|
||||
console.log(e);
|
||||
console.log(d.filename);
|
||||
uni.showToast({
|
||||
title: '安装失败-01',
|
||||
mask: false,
|
||||
duration: 1500
|
||||
});
|
||||
}
|
||||
);
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: '更新失败-02',
|
||||
mask: false,
|
||||
duration: 1500
|
||||
});
|
||||
}
|
||||
});
|
||||
try {
|
||||
dtask.start(); // 开启下载的任务
|
||||
var prg = 0;
|
||||
var showLoading = plus.nativeUI.showWaiting('正在下载'); //创建一个showWaiting对象
|
||||
dtask.addEventListener('statechanged', function(task, status) {
|
||||
// 给下载任务设置一个监听 并根据状态 做操作
|
||||
switch (task.state) {
|
||||
case 1:
|
||||
showLoading.setTitle('正在下载');
|
||||
break;
|
||||
case 2:
|
||||
showLoading.setTitle('已连接到服务器');
|
||||
break;
|
||||
case 3:
|
||||
prg = parseInt((parseFloat(task.downloadedSize) / parseFloat(task.totalSize)) * 100);
|
||||
showLoading.setTitle(' 正在下载' + prg + '% ');
|
||||
break;
|
||||
case 4:
|
||||
plus.nativeUI.closeWaiting();
|
||||
//下载完成
|
||||
break;
|
||||
}
|
||||
});
|
||||
} catch (err) {
|
||||
plus.nativeUI.closeWaiting();
|
||||
uni.showToast({
|
||||
title: '更新失败-03',
|
||||
mask: false,
|
||||
duration: 1500
|
||||
});
|
||||
}
|
||||
} else {
|
||||
//取消
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
@import './common/iconfont.css';
|
||||
@import './common/myIcon.css';
|
||||
/*每个页面公共css */
|
||||
@import './common/style.scss';
|
||||
</style>
|
||||
Reference in New Issue
Block a user