import App from './App' // #ifndef VUE3 import Vue from 'vue' Vue.config.productionTip = false App.mpType = 'app' try { function isPromise(obj) { return ( !!obj && (typeof obj === "object" || typeof obj === "function") && typeof obj.then === "function" ); } // 统一 vue2 API Promise 化返回格式与 vue3 保持一致 uni.addInterceptor({ returnValue(res) { if (!isPromise(res)) { return res; } return new Promise((resolve, reject) => { res.then((res) => { if (res[0]) { reject(res[0]); } else { resolve(res[1]); } }); }); }, }); } catch (error) {} const app = new Vue({ ...App }) app.$mount() // #endif // #ifdef VUE3 import { createSSRApp } from 'vue' import uviewPlus from "@/uni_modules/uview-plus" import directive from "@/directive" import * as commonUtils from "@/utils/common.js" import constant from "@/utils/constant.js" export function createApp() { const app = createSSRApp(App) app.use(uviewPlus) app.use(directive) app.config.globalProperties.$toast = commonUtils.toast; app.config.globalProperties.$showConfirm = commonUtils.showConfirm; app.config.globalProperties.$constant = constant; // #ifndef MP // 处理 wx.connectSocket promisify 兼容问题,强制返回 SocketTask uni.connectSocket = (function(connectSocket) { return function(options) { options.success = options.success || function() {} return connectSocket.call(this, options) } })(uni.connectSocket) // #endif return { app } } // #endif