all
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
import { uniAppHook } from './config';
|
||||
import H5init from '../vueRouter/init';
|
||||
import { appInit, removeBackPressEvent, pageIsHeadBack } from '../appRouter/init';
|
||||
import appletsInit from '../appletsRouter/init';
|
||||
import { appPlatform } from './util';
|
||||
import { proxyIndexHook } from '../appRouter/hooks';
|
||||
import { appletsProxyIndexHook } from '../appletsRouter/hooks';
|
||||
|
||||
/**
|
||||
* 获取一些需要在各个平台混入的事件
|
||||
* @param {Object} Router 当前原始路由对象
|
||||
*/
|
||||
const getMixins = function (Router) {
|
||||
return {
|
||||
H5: {
|
||||
beforeCreate() {
|
||||
if (this.$options.router) {
|
||||
H5init(Router.$root, this.$options.router, this);
|
||||
}
|
||||
},
|
||||
},
|
||||
APP: {
|
||||
onLaunch() {
|
||||
uniAppHook.onLaunched = true; // 标志已经触发了 onLaunch 事件
|
||||
appInit.call(this, Router.$root);
|
||||
},
|
||||
onLoad() {
|
||||
// 第一个页面 拦截所有生命周期
|
||||
if (uniAppHook.onLaunched && !uniAppHook.pageReady) {
|
||||
uniAppHook.onLaunched = false;
|
||||
proxyIndexHook.call(this, Router.$root);
|
||||
}
|
||||
removeBackPressEvent(this.$mp.page, this.$options); // 移除页面的onBackPress事件
|
||||
},
|
||||
onBackPress(...args) {
|
||||
return pageIsHeadBack.call(Router.$root, this.$mp.page, this.$options, args);
|
||||
},
|
||||
},
|
||||
APPLETS: {
|
||||
onLaunch() {
|
||||
uniAppHook.onLaunched = true; // 标志已经触发了 onLaunch 事件
|
||||
appletsInit.call(this, Router.$root);
|
||||
},
|
||||
onLoad() {
|
||||
if (uniAppHook.onLaunched && !uniAppHook.pageReady) { // 必须是第一个页面
|
||||
uniAppHook.onLaunched = false;
|
||||
appletsProxyIndexHook.call(this, Router.$root);
|
||||
}
|
||||
},
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
const initMixins = function (Vue, Router) {
|
||||
Vue.mixin({
|
||||
...getMixins(Router)[appPlatform(true)],
|
||||
});
|
||||
};
|
||||
|
||||
export default initMixins;
|
||||
Reference in New Issue
Block a user