GateWay/src/main.js

126 lines
3.0 KiB
JavaScript
Raw Normal View History

2024-11-13 11:26:59 +08:00
import 'amfe-flexible';
import { createApp } from 'vue';
import App from './App.vue';
import router from './router';
import store from './store';
import '@vant/touch-emulator';
2025-05-30 16:25:17 +08:00
import '../public/uni.webview.1.5.6.js';
2024-12-09 14:45:59 +08:00
// import '../../set-vue/src/assets/icon/iconfont.js';
import '../src/assets/icon/iconfont'
2024-11-13 11:26:59 +08:00
// const VConsole = require('vconsole');
// new VConsole(); // 初始化vConsole
if (/xazn/.test(navigator.userAgent) || /uni-app/.test(navigator.userAgent)) {
// 在App中
console.log("UniAppJSBridgeReady 事件已触发");
document.addEventListener("UniAppJSBridgeReady", function () {
console.log("ok");
});
}
window.MQTT_recv = MQTT_recv;
//在收到数据后需要调用这个函数
function MQTT_recv(string) {
console.log("MQTT 接收:" + string);
}
function checkEnvironment() {
if (window.location.hostname === '192.168.4.1') {
console.log('in local');
// 本地开发环境,需要登录
requireLogin();
} else {
// 生产环境,不需要登录
bypassLogin();
}
}
function requireLogin() {
if (!store.state.isAuthenticated) {
router.push('/login');
}
}
// 获取 URL 中的 token 参数
function getQueryString(name) {
const urlParams = new URLSearchParams(window.location.search);
return urlParams.get(name);
}
// 在页面加载时,获取 token 并存储到 localStorage
const token = getQueryString('token');
if (token) {
localStorage.setItem('token', token);
console.log('Token stored:', token);
} else {
console.log('No token found in URL');
}
function bypassLogin() {
// 假设在服务器环境中已经有登录信息,可以直接跳过登录逻辑
store.commit('setAuthenticated', true);
}
const app = createApp(App);
checkEnvironment(); // 检查环境并执行相应的逻辑
const isAuthenticated = JSON.parse(localStorage.getItem('isAuthenticated'));
if (isAuthenticated) {
store.commit('setAuthenticated', true);
}
app.use(store).use(router).mount('#app');
window.VueRouter = router; // 这里立即暴露 router
2025-05-22 15:34:21 +08:00
console.log("VueRouter 已暴露到全局");
2025-05-30 16:25:17 +08:00
// main.js
if (window.uni && uni.postMessage) {
console.log('WebView SDK 已加载');
}
// 示例:监听 UniApp 原生事件
document.addEventListener('UniAppJSBridgeReady', () => {
uni.postMessage({
data: '子页面已准备好'
});
});
if (uni.getEnv().plus) {
console.log('运行在 UniApp WebView 中');
}
2025-05-22 15:34:21 +08:00
// qiankun
// let instance = null;
// function render(props = {}) {
// const { container } = props;
// instance = new Vue({
// render: (h) => h(App),
// }).$mount(container ? container.querySelector('#app') : '#app');
// }
// // 独立运行(非 Qiankun 环境)
// if (!window.__POWERED_BY_QIANKUN__) {
// render();
// }
// // Qiankun 生命周期
// export async function bootstrap() {
// console.log('[subapp] bootstrap');
// }
// export async function mount(props) {
// console.log('[subapp] mount', props);
// render(props);
// }
// export async function unmount() {
// console.log('[subapp] unmount');
// instance.$destroy();
// instance = null;
// }