alipay-emulator/App.vue

126 lines
2.8 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<script>
import { get } from "@/utils/requests.js"
import { uiUtil } from "@/utils/common.js"
export default {
onLaunch: function (options) {
const startTime = Date.now()
console.log('App Launch', options)
// 1. 同步初始化配置(必须完成)
this.initConfig(options)
// 启动完成
console.log(`App 启动耗时: ${Date.now() - startTime}ms`)
},
onShow: function () {
console.log('App Show')
},
onHide: function () {
console.log('App Hide')
},
methods: {
/**
* 初始化应用配置
*/
initConfig(options) {
// 检查是否有外部传入的配置数据
const hasExtraData = options?.referrerInfo?.extraData &&
JSON.stringify(options.referrerInfo.extraData) !== '{}'
if (hasExtraData) {
this.initFromExtraData(options.referrerInfo.extraData)
} else {
this.initFromEnvironment()
}
},
/**
* 从外部数据初始化配置
*/
initFromExtraData(extraData) {
// 批量设置 Storage减少 I/O 次数
const storageData = {
host: extraData.host,
header: {
"x-token": extraData['x-token'],
"x-version": extraData['x-version'],
"x-platform": extraData['x-platform'],
"x-device-id": extraData['x-device-id'],
"x-mobile-brand": extraData['x-mobile-brand'],
"x-mobile-model": extraData['x-mobile-model'],
"x-channel": extraData['x-channel'],
"x-package": extraData['x-package'],
"x-click-id": extraData['x-click-id'],
// #ifdef APP-PLUS
"header": {
"version": this.$version,
}
// #endif
},
encrypt: extraData['encrypt'],
decrypt: extraData['decrypt']
}
// 批量写入
Object.keys(storageData).forEach(key => {
uni.setStorageSync(key, storageData[key])
})
},
/**
* 从环境配置初始化
*/
initFromEnvironment() {
if (process.env.NODE_ENV === 'development') {
this.initDevelopmentConfig()
} else {
// 生产环境警告延迟显示,避免阻塞启动
setTimeout(() => {
this.showProductionWarning()
}, 100)
}
},
/**
* 初始化开发环境配置
*/
initDevelopmentConfig() {
// 批量设置开发环境配置
const devConfig = {
host: "https://flaunt.batiao8.com/",
header: { "x-token": "ebe14dab-1879-4c5d-9148-727b96b30aad" },
decrypt: "e4rOtnF8tJjtHO7ecZeJHN1rapED5ImB",
encrypt: "xn08hYoizXhZ1zHP8DVqfCm2yHxPmhil"
}
Object.keys(devConfig).forEach(key => {
uni.setStorageSync(key, devConfig[key])
})
},
/**
* 显示生产环境警告
*/
showProductionWarning() {
uni.showModal({
title: '提示',
showCancel: false,
content: "将退出,请重新进入",
success: function (res) {
// #ifdef APP-PLUS
plus.runtime.quit()
// #endif
}
})
}
}
}
</script>
<style>
@import "./common/color.css";
</style>