You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
shop-app/main.js

95 lines
2.4 KiB

/*
* @Author: ch
* @Date: 2021-07-26 23:22:16
* @LastEditors: ch
* @LastEditTime: 2022-05-16 09:46:02
* @Description: file content
*/
import Vue from 'vue';
import App from './App';
import {router,RouterMount} from '@/common/router/index.js';
import uView from 'uview-ui';
import store from '@/common/store';
import Confirm from '@/components/mount/index';
import route from 'uview-ui/libs/util/route';
import {toSearchJson} from '@/common/utils';
import {ApiGetOpenId, ApiGetAuthUrl} from '@/common/api/wx';
import {MsbWebSkt, MsbWebSktInit, createUUID} from '@/common/utils';
if(store.state.token){
// 进入应用则向IM发起心跳包 以及获取IM会话数据
MsbWebSktInit().then(()=>{
MsbWebSkt.send({
data : JSON.stringify({
traceId : createUUID(),
traceType : "1",
content: { sysId : "1"}
})
});
setInterval(()=>{
MsbWebSkt.send({
data : JSON.stringify({
traceId : createUUID(),
traceType : "0",
content: { text : "ping"}
})
})
}, 5000);
})
}
// 微信打开需要授权
const ua = navigator ? navigator.userAgent.toLowerCase() : '';
if(ua.includes('micromessenger')) {
if(!store.state.openId){
let query = toSearchJson(window.location.search)
if(query.code){
ApiGetOpenId({
code : query.code
}).then(({error, result}) => {
if(error){
uni.$u.toast(error.message);
return false;
}
store.commit('SET_OPEN_ID', result.openId);
})
}else{
ApiGetAuthUrl({
redirectUrl : window.location.href,
scope : 'snsapi_base'
}).then(({result, error}) => {
if(error){
uni.$u.toast(error.message);
return false;
}
window.location.href = result;
})
}
}
}
Vue.use(router);
Vue.use(uView);
Vue.use(Confirm);
Vue.prototype.$store = store;
Vue.config.productionTip = false;
App.mpType = 'app'
const app = new Vue({
...App
})
// #ifdef H5
RouterMount(app,router,'#app')
// #endif
// #ifndef H5
app.$mount(); //为了兼容小程序及app端必须这样写才有效果
// #endif