435 lines
13 KiB
Vue
435 lines
13 KiB
Vue
<style lang="scss">
|
||
/* 注意要写在第一行,同时给style标签加入lang="scss"属性 */
|
||
@import "@/uni_modules/uview-ui/index.scss";
|
||
</style>
|
||
<script>
|
||
import utils from "./common/utils.js";
|
||
import config from "./config.js";
|
||
export default {
|
||
onLaunch: function (e) {
|
||
let self = this;
|
||
if (uni.getSystemInfoSync().platform == "android") {
|
||
self.afterNetWork(e);
|
||
} else {
|
||
uni.getNetworkType({
|
||
success: (res) => {
|
||
console.log("success---", res);
|
||
if (res.networkType == "none") {
|
||
uni.onNetworkStatusChange(function (res1) {
|
||
console.log("onNetworkStatusChange");
|
||
console.log(res1.isCon1nected);
|
||
console.log(res1.networkType);
|
||
if (res1.isConnected == true) {
|
||
self.afterNetWork(e);
|
||
uni.reLaunch({
|
||
url: "/pages/index/index",
|
||
});
|
||
}
|
||
});
|
||
} else {
|
||
self.afterNetWork(e);
|
||
}
|
||
},
|
||
fail: (err) => {
|
||
console.log("err---", err);
|
||
},
|
||
});
|
||
}
|
||
},
|
||
onShow: function () {
|
||
//console.log('App Show')
|
||
},
|
||
onHide: function () {
|
||
//console.log('App Hide')
|
||
},
|
||
methods: {
|
||
async afterNetWork(e) {
|
||
let self = this;
|
||
// 隐私政策
|
||
await self.getI18n();
|
||
// #ifdef APP-PLUS
|
||
self.isFirstEnter();
|
||
// #endif
|
||
console.log("App Launch");
|
||
//#ifdef MP-WEIXIN
|
||
//检查更新
|
||
self.updateManager();
|
||
//#endif
|
||
// #ifdef APP-PLUS
|
||
let url = self.config.yxyapi;
|
||
plus.runtime.getProperty(plus.runtime.appid, function (widgetInfo) {
|
||
uni.request({
|
||
url: url + "/yiti.php",
|
||
data: {
|
||
type: 1,
|
||
version: widgetInfo.version,
|
||
platform: uni.getSystemInfoSync().platform,
|
||
},
|
||
success: (result) => {
|
||
console.log(
|
||
"---------------------update------------------------------"
|
||
);
|
||
console.log(result);
|
||
var data = result.data;
|
||
let host = data.host;
|
||
if (host) {
|
||
self.$store.commit("changeHost", host);
|
||
}
|
||
if (data.update && data.wgtUrl) {
|
||
self.updateWgt(data.wgtUrl);
|
||
}
|
||
if (data.update && data.pkgUrl) {
|
||
plus.nativeUI.confirm(
|
||
self.$t("w_0425"),
|
||
function (e) {
|
||
if (e.index == 0) {
|
||
plus.runtime.openURL(data.pkgUrl);
|
||
}
|
||
},
|
||
{
|
||
title: self.$t("w_0424"),
|
||
buttons: [self.$t("MN_F_32"), self.$t("MN_F_31")],
|
||
verticalAlign: "center",
|
||
}
|
||
);
|
||
}
|
||
},
|
||
error: (error) => {
|
||
console.log("----------------error");
|
||
console.log(error);
|
||
},
|
||
});
|
||
});
|
||
// #endif
|
||
//应用启动参数
|
||
self.onStartupScene(e.query);
|
||
},
|
||
async getLanguage2(name) {
|
||
let self = this;
|
||
const [Error, res] = await uni.request({
|
||
url: "http://f.hzs413.com/language/" + name + ".js",
|
||
method: "GET",
|
||
});
|
||
let data = res ? res.data : null;
|
||
let err = Error;
|
||
return {
|
||
data,
|
||
err,
|
||
};
|
||
},
|
||
async getLanguage(name) {
|
||
let self = this;
|
||
const [Error, res] = await uni.request({
|
||
url: self.config.ossapi + self.config.ossurl + name + ".js",
|
||
method: "GET",
|
||
});
|
||
let data = res ? res.data : null;
|
||
let err = Error;
|
||
return {
|
||
data,
|
||
err,
|
||
};
|
||
},
|
||
async setLocale(name, name2, name3) {
|
||
let self = this;
|
||
// #ifdef APP
|
||
try {
|
||
const res = await self.getLanguage(name);
|
||
let data = self.getJS(res, name2);
|
||
this.$i18n.setLocaleMessage(name3, data);
|
||
} catch (e) {
|
||
const res = await self.getLanguage2(name);
|
||
let data = self.getJS(res, name2);
|
||
this.$i18n.setLocaleMessage(name3, data);
|
||
}
|
||
// #endif
|
||
// #ifdef H5
|
||
self.addScriptChild(name, 1);
|
||
// #endif
|
||
},
|
||
addScriptChild(name, times) {
|
||
let self = this;
|
||
const s = document.createElement("script");
|
||
s.type = "text/javascript";
|
||
if (times == 1) {
|
||
s.src = self.config.ossapi + self.config.ossurl + name + ".js";
|
||
} else {
|
||
s.src = "http://f.hzs413.com/language/" + name + ".js";
|
||
}
|
||
|
||
s.ref = "local1";
|
||
document.body.appendChild(s);
|
||
|
||
if (window.ActiveXObject || "ActiveXObject" in window) {
|
||
//判断是否是ie
|
||
if (s.readyState) {
|
||
//判断是否支持readyState
|
||
s.onreadystatechange = function () {
|
||
if (this.readyState == "loaded" || this.readyState == "complete") {
|
||
self.readyAdd(name);
|
||
console.log("ie10及以下加载完成");
|
||
}
|
||
};
|
||
} else {
|
||
s.onload = function () {
|
||
self.readyAdd(name);
|
||
console.log("ie11及Edge加载完成");
|
||
};
|
||
s.onerror = function () {
|
||
console.log("ie11及Edge加载失败:" + name);
|
||
if (times == 1) {
|
||
self.addScriptChild(name, 2);
|
||
}
|
||
};
|
||
}
|
||
} else {
|
||
//不是ie
|
||
s.onload = function () {
|
||
self.readyAdd(name);
|
||
console.log("非ie浏览器加载完成");
|
||
};
|
||
s.onerror = function () {
|
||
console.log("非ie浏览器加载失败:" + name + times);
|
||
if (times == 1) {
|
||
self.addScriptChild(name, 2);
|
||
}
|
||
};
|
||
}
|
||
},
|
||
getJS(res, name) {
|
||
console.log(res);
|
||
if (res && res.data) {
|
||
let funcStr =
|
||
"function test(value){" + res.data + ";return " + name + "}";
|
||
let test = eval("(false || " + funcStr + ")");
|
||
return test();
|
||
} else {
|
||
return [];
|
||
}
|
||
},
|
||
readyAdd(name) {
|
||
console.log("创建:" + name);
|
||
if (name == "zh-CN") {
|
||
if (zhCN) {
|
||
const localzhCN = this.getJS(zhCN, "zhCN");
|
||
this.$i18n.mergeLocaleMessage(name, zhCN);
|
||
}
|
||
}
|
||
if (name == "en-US") {
|
||
if (enUS) {
|
||
const localEnUS = this.getJS(enUS, "enUS");
|
||
this.$i18n.mergeLocaleMessage(name, enUS);
|
||
}
|
||
}
|
||
if (name == "ru-RU") {
|
||
if (ruRU) {
|
||
const localruRU = this.getJS(ruRU, "ruRU");
|
||
this.$i18n.mergeLocaleMessage(name, ruRU);
|
||
}
|
||
}
|
||
if (name == "fr-FR") {
|
||
if (frFR) {
|
||
const localruRU = this.getJS(frFR, "frFR");
|
||
this.$i18n.mergeLocaleMessage(name, frFR);
|
||
}
|
||
}
|
||
},
|
||
async getI18n() {
|
||
let self = this;
|
||
self.setLocale("en-US", "enUS", "en");
|
||
self.setLocale("zh-CN", "zhCN", "zh-CN");
|
||
self.setLocale("ru-RU", "ruRU", "ru-RU");
|
||
self.setLocale("fr-FR", "frFR", "fr-FR");
|
||
// self.setLocale('pt-PT', 'ptPT', 'pt-PT');
|
||
},
|
||
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: self.$t("w_0424"),
|
||
content: self.$t("version_up_1"),
|
||
showCancel: false,
|
||
success(res2) {
|
||
if (res2.confirm) {
|
||
// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
|
||
updateManager.applyUpdate();
|
||
}
|
||
},
|
||
});
|
||
});
|
||
}
|
||
});
|
||
|
||
updateManager.onUpdateFailed(function (res) {
|
||
// 新的版本下载失败
|
||
uni.showModal({
|
||
title: self.$t("w_0424"),
|
||
content: self.$t("w_0428"),
|
||
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
|
||
},
|
||
updateWgt(wgtUrl) {
|
||
let self = this;
|
||
uni.showModal({
|
||
title: self.$t("w_0424"),
|
||
content: self.$t("w_0425"),
|
||
confirmText: self.$t("ENU_P_TYPE4"),
|
||
showCancel: false,
|
||
success: function (e) {
|
||
if (e.confirm) {
|
||
var dtask = plus.downloader.createDownload(
|
||
wgtUrl,
|
||
{},
|
||
function (d, status) {
|
||
uni.showToast({
|
||
title: self.$t("MY_ORD_57"),
|
||
mask: false,
|
||
duration: 1000,
|
||
});
|
||
// 下载完成
|
||
if (status == 200) {
|
||
plus.runtime.install(
|
||
d.filename,
|
||
{
|
||
force: true,
|
||
},
|
||
function () {
|
||
console.log("install success...");
|
||
plus.nativeUI.alert(
|
||
self.$t("version_up_2"),
|
||
function () {
|
||
plus.runtime.restart();
|
||
},
|
||
self.$t("w_0424"),
|
||
self.$t("ENU_P_TYPE4")
|
||
);
|
||
},
|
||
function (e) {
|
||
console.log(e);
|
||
console.log(d.filename);
|
||
uni.showToast({
|
||
title: self.$t("w_0428") + "-01",
|
||
mask: false,
|
||
duration: 1500,
|
||
});
|
||
}
|
||
);
|
||
} else {
|
||
uni.showToast({
|
||
title: self.$t("w_0428") + "-02",
|
||
mask: false,
|
||
duration: 1500,
|
||
});
|
||
}
|
||
}
|
||
);
|
||
try {
|
||
dtask.start(); // 开启下载的任务
|
||
var prg = 0;
|
||
var showLoading = plus.nativeUI.showWaiting(self.$t("w_0421")); //创建一个showWaiting对象
|
||
dtask.addEventListener("statechanged", function (task, status) {
|
||
// 给下载任务设置一个监听 并根据状态 做操作
|
||
switch (task.state) {
|
||
case 1:
|
||
showLoading.setTitle(self.$t("w_0421"));
|
||
break;
|
||
case 2:
|
||
showLoading.setTitle(self.$t("version_up_3"));
|
||
break;
|
||
case 3:
|
||
prg = parseInt(
|
||
(parseFloat(task.downloadedSize) /
|
||
parseFloat(task.totalSize)) *
|
||
100
|
||
);
|
||
showLoading.setTitle(self.$t("w_0421") + prg + "% ");
|
||
break;
|
||
case 4:
|
||
plus.nativeUI.closeWaiting();
|
||
//下载完成
|
||
break;
|
||
}
|
||
});
|
||
} catch (err) {
|
||
plus.nativeUI.closeWaiting();
|
||
uni.showToast({
|
||
title: self.$t("w_0428") + "-03",
|
||
mask: false,
|
||
duration: 1500,
|
||
});
|
||
}
|
||
} else {
|
||
//取消
|
||
}
|
||
},
|
||
});
|
||
},
|
||
},
|
||
};
|
||
</script>
|
||
|
||
<style lang="scss">
|
||
@import "./common/iconfont.css";
|
||
@import "./common/myIcon.css";
|
||
/*每个页面公共css */
|
||
@import "./common/style.scss";
|
||
</style>
|