2021-05-13 11:03:32 +08:00
|
|
|
|
<script>
|
2022-07-20 18:24:49 +08:00
|
|
|
|
/**
|
|
|
|
|
* vuex管理登录状态,具体可以参考官方登录模板示例
|
|
|
|
|
*/
|
|
|
|
|
import {
|
|
|
|
|
mapMutations
|
|
|
|
|
} from "vuex";
|
|
|
|
|
import APPUpdate from "@/plugins/APPUpdate";
|
|
|
|
|
import {
|
|
|
|
|
getClipboardData
|
|
|
|
|
} from "@/js_sdk/h5-copy/h5-copy.js";
|
|
|
|
|
import config from "@/config/config";
|
|
|
|
|
import storage from "@/utils/storage";
|
|
|
|
|
|
|
|
|
|
|
2022-07-14 14:20:15 +08:00
|
|
|
|
|
2022-07-20 18:24:49 +08:00
|
|
|
|
/**
|
|
|
|
|
* 路由监听并删除路由
|
|
|
|
|
* https://developers.weixin.qq.com/miniprogram/dev/api/route/wx.navigateTo.html
|
|
|
|
|
* */
|
|
|
|
|
// #ifdef MP-WEIXIN
|
|
|
|
|
wx.onAppRoute((res) => {
|
|
|
|
|
const pages = getCurrentPages();
|
|
|
|
|
console.log("pages:" + pages.length,pages);
|
|
|
|
|
if (pages.length > 3) {
|
|
|
|
|
delete getCurrentPages()[2]
|
|
|
|
|
}
|
|
|
|
|
console.log('路由监听', {
|
|
|
|
|
res
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
// #endif
|
|
|
|
|
|
|
|
|
|
export default {
|
|
|
|
|
data() {
|
|
|
|
|
return {
|
|
|
|
|
config,
|
|
|
|
|
};
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 监听返回
|
|
|
|
|
*/
|
|
|
|
|
onBackPress(e) {
|
|
|
|
|
if (e.from == "backbutton") {
|
|
|
|
|
let routes = getCurrentPages();
|
|
|
|
|
let curRoute = routes[routes.length - 1].options;
|
|
|
|
|
routes.forEach((item) => {
|
|
|
|
|
if (
|
|
|
|
|
item.route == "pages/tabbar/cart/cartList" ||
|
|
|
|
|
item.route.indexOf("pages/product/goods") != -1
|
|
|
|
|
) {
|
|
|
|
|
uni.redirectTo({
|
|
|
|
|
url: item.route,
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
if (curRoute.addId) {
|
|
|
|
|
uni.reLaunch({
|
|
|
|
|
url: "/pages/tabbar/cart/cartList",
|
|
|
|
|
});
|
|
|
|
|
} else {
|
|
|
|
|
uni.navigateBack();
|
|
|
|
|
}
|
|
|
|
|
return true; //阻止默认返回行为
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
|
|
|
|
...mapMutations(["login"]),
|
|
|
|
|
},
|
|
|
|
|
onLaunch: function() {
|
|
|
|
|
// #ifdef APP-PLUS
|
|
|
|
|
this.checkArguments(); // 检测启动参数
|
|
|
|
|
APPUpdate();
|
|
|
|
|
|
|
|
|
|
// 重点是以下: 一定要监听后台恢复 !一定要
|
|
|
|
|
plus.globalEvent.addEventListener("newintent", (e) => {
|
|
|
|
|
this.checkArguments(); // 检测启动参数
|
|
|
|
|
});
|
|
|
|
|
// #endif
|
|
|
|
|
|
|
|
|
|
// #ifdef MP-WEIXIN
|
|
|
|
|
this.applyUpdateWeChat();
|
|
|
|
|
// #endif
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
onShow() {
|
|
|
|
|
// #ifndef H5
|
|
|
|
|
this.getClipboard();
|
|
|
|
|
// #endif
|
|
|
|
|
// #ifdef APP-PLUS
|
|
|
|
|
|
|
|
|
|
if (storage.getShow()) {
|
|
|
|
|
if (uni.getSystemInfoSync().platform == 'ios') {
|
|
|
|
|
this.$u.route("/pages/tabbar/screen/fullScreen");
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// #endif
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
|
|
|
|
/**
|
|
|
|
|
* 微信小程序版本提交更新版本 解决缓存问题
|
|
|
|
|
*/
|
|
|
|
|
applyUpdateWeChat() {
|
|
|
|
|
const updateManager = uni.getUpdateManager();
|
|
|
|
|
|
|
|
|
|
updateManager.onCheckForUpdate(function(res) {
|
|
|
|
|
// 请求完新版本信息的回调
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
updateManager.onUpdateReady(function(res) {
|
|
|
|
|
uni.showModal({
|
|
|
|
|
title: "更新提示",
|
|
|
|
|
content: "发现新版本,是否重启应用?",
|
|
|
|
|
success(res) {
|
|
|
|
|
if (res.confirm) {
|
|
|
|
|
// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
|
|
|
|
|
updateManager.applyUpdate();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
updateManager.onUpdateFailed(function(res) {
|
|
|
|
|
// 新的版本下载失败
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// TODO 开屏广告 后续优化添加
|
|
|
|
|
launch() {
|
|
|
|
|
try {
|
|
|
|
|
// 获取本地存储中launchFlag标识 开屏广告
|
|
|
|
|
const value = uni.getStorageSync("launchFlag");
|
|
|
|
|
if (!value) {
|
|
|
|
|
// this.$u.route("/pages/index/agreement");
|
|
|
|
|
} else {
|
|
|
|
|
//app启动时打开启动广告页
|
|
|
|
|
var w = plus.webview.open(
|
|
|
|
|
"/hybrid/html/advertise/advertise.html",
|
|
|
|
|
"本地地址", {
|
|
|
|
|
top: 0,
|
|
|
|
|
bottom: 0,
|
|
|
|
|
zindex: 999,
|
|
|
|
|
},
|
|
|
|
|
"fade-in",
|
|
|
|
|
500
|
|
|
|
|
);
|
|
|
|
|
//设置定时器,4s后关闭启动广告页
|
|
|
|
|
setTimeout(function() {
|
|
|
|
|
plus.webview.close(w);
|
|
|
|
|
APPUpdate();
|
|
|
|
|
}, 3000);
|
|
|
|
|
}
|
|
|
|
|
} catch (e) {
|
|
|
|
|
// error
|
|
|
|
|
uni.setStorage({
|
|
|
|
|
key: "launchFlag",
|
|
|
|
|
data: true,
|
|
|
|
|
success: function() {
|
|
|
|
|
console.log("error时存储launchFlag");
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取粘贴板数据
|
|
|
|
|
*/
|
|
|
|
|
async getClipboard() {
|
|
|
|
|
let res = await getClipboardData();
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 解析粘贴板数据
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
if (res.indexOf(config.shareLink) != -1 && (res != this.$store.state.shareLink)) {
|
|
|
|
|
this.$store.state.shareLink = res
|
|
|
|
|
uni.showModal({
|
|
|
|
|
title: "提示",
|
|
|
|
|
content: "检测到一个分享链接是否跳转?",
|
|
|
|
|
confirmText: "跳转",
|
|
|
|
|
success: function(callback) {
|
|
|
|
|
if (callback.confirm) {
|
|
|
|
|
const path = res.split(config.shareLink)[1];
|
|
|
|
|
if (path.indexOf("tabbar") != -1) {
|
|
|
|
|
uni.switchTab({
|
|
|
|
|
url: path,
|
|
|
|
|
});
|
|
|
|
|
} else {
|
2022-09-15 15:40:50 +08:00
|
|
|
|
uni.navigateTo({
|
2022-07-20 18:24:49 +08:00
|
|
|
|
url: path,
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* h5中打开app获取跳转app的链接并跳转
|
|
|
|
|
*/
|
|
|
|
|
checkArguments() {
|
|
|
|
|
// #ifdef APP-PLUS
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
const args = plus.runtime.arguments;
|
|
|
|
|
if (args) {
|
|
|
|
|
const argsStr = decodeURIComponent(args);
|
|
|
|
|
const path = argsStr.split("//")[1];
|
|
|
|
|
if (path.indexOf("tabbar") != -1) {
|
|
|
|
|
uni.switchTab({
|
|
|
|
|
url: `/${path}`,
|
|
|
|
|
});
|
|
|
|
|
} else {
|
2022-09-15 15:40:50 +08:00
|
|
|
|
uni.navigateTo({
|
2022-07-20 18:24:49 +08:00
|
|
|
|
url: `/${path}`,
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
// #endif
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
};
|
2021-05-13 11:03:32 +08:00
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style lang="scss">
|
2022-07-20 18:24:49 +08:00
|
|
|
|
@import "uview-ui/index.scss";
|
|
|
|
|
|
|
|
|
|
// -------适配底部安全区 苹果x系列刘海屏
|
|
|
|
|
|
|
|
|
|
// #ifdef MP-WEIXIN
|
|
|
|
|
.mp-iphonex-bottom {
|
|
|
|
|
padding-bottom: constant(safe-area-inset-bottom);
|
|
|
|
|
padding-bottom: env(safe-area-inset-bottom);
|
|
|
|
|
box-sizing: content-box;
|
|
|
|
|
height: auto !important;
|
|
|
|
|
padding-top: 10rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// #endif
|
|
|
|
|
|
|
|
|
|
body {
|
|
|
|
|
background-color: $bg-color;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/************************ */
|
|
|
|
|
.w200 {
|
|
|
|
|
width: 200rpx !important;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.flex1 {
|
|
|
|
|
flex: 1; //必须父级设置flex
|
|
|
|
|
}
|
2021-05-13 11:03:32 +08:00
|
|
|
|
</style>
|