jsy-app/main.js

71 lines
1.5 KiB
JavaScript
Raw Normal View History

2024-09-18 10:30:10 +08:00
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"
2024-09-25 18:47:15 +08:00
import directive from "@/directive"
import * as commonUtils from "@/utils/common.js"
import constant from "@/utils/constant.js"
2024-09-18 10:30:10 +08:00
export function createApp() {
const app = createSSRApp(App)
app.use(uviewPlus)
app.use(directive)
2024-09-25 18:47:15 +08:00
app.config.globalProperties.$toast = commonUtils.toast;
app.config.globalProperties.$showConfirm = commonUtils.showConfirm;
app.config.globalProperties.$constant = constant;
2024-09-18 10:30:10 +08:00
// #ifndef MP
// 处理 wx.connectSocket promisify 兼容问题,强制返回 SocketTask
2024-09-25 18:47:15 +08:00
uni.connectSocket = (function(connectSocket) {
return function(options) {
options.success = options.success || function() {}
2024-09-18 10:30:10 +08:00
return connectSocket.call(this, options)
}
})(uni.connectSocket)
// #endif
return {
app
}
}
// #endif