65 lines
1.2 KiB
JavaScript
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
|