jsy-app/main.js
2024-09-18 10:30:10 +08:00

65 lines
1.2 KiB
JavaScript

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"
export function createApp() {
const app = createSSRApp(App)
app.use(uviewPlus)
app.use(directive)
// #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