162 lines
3.8 KiB
Vue
162 lines
3.8 KiB
Vue
|
||
<script>
|
||
/**
|
||
* 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";
|
||
// 悬浮球
|
||
|
||
export default {
|
||
data() {
|
||
return {
|
||
config,
|
||
};
|
||
},
|
||
methods: {
|
||
...mapMutations(["login"]),
|
||
},
|
||
onLaunch: function () {
|
||
// #ifdef APP-PLUS
|
||
this.checkArguments(); // 检测启动参数
|
||
APPUpdate();
|
||
// 重点是以下: 一定要监听后台恢复 !一定要
|
||
plus.globalEvent.addEventListener("newintent", (e) => {
|
||
this.checkArguments(); // 检测启动参数
|
||
});
|
||
// #endif
|
||
},
|
||
|
||
onShow() {
|
||
// #ifndef H5
|
||
|
||
this.getClipboard();
|
||
// #endif
|
||
},
|
||
|
||
methods: {
|
||
// 开屏广告
|
||
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) {
|
||
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 {
|
||
uni.navigateTo({
|
||
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 {
|
||
uni.navigateTo({
|
||
url: `/${path}`,
|
||
});
|
||
}
|
||
}
|
||
});
|
||
// #endif
|
||
},
|
||
},
|
||
};
|
||
</script>
|
||
|
||
<style lang="scss">
|
||
@import "uview-ui/index.scss";
|
||
@import "./static/font/iconfont/iconfont.css";
|
||
// -------适配底部安全区 苹果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
|
||
}
|
||
</style>
|