import 'amfe-flexible'; import { createApp } from 'vue'; import App from './App.vue'; import router from './router'; import store from './store'; import '@vant/touch-emulator'; import '../public/uni.webview.1.5.6.js'; // import '../../set-vue/src/assets/icon/iconfont.js'; import '../src/assets/icon/iconfont' // 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 console.log("VueRouter 已暴露到全局"); // 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 中'); } // 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; // }