import Vue from 'vue';
|
|
function callHook$1(vm, hook, params) {
|
var handlers = vm.$options[hook];
|
if (hook === 'onError' && handlers) {
|
handlers = [handlers];
|
}
|
if(typeof handlers === 'function'){
|
handlers = [handlers]
|
}
|
|
var ret;
|
if (handlers) {
|
for (var i = 0, j = handlers.length; i < j; i++) {
|
// try {
|
ret = handlers[i].call(vm, params);
|
// } catch (e) {//fixed by xxxxxx
|
// handleError(e, vm, (hook + " hook"));
|
// }
|
}
|
}
|
if (vm._hasHookEvent) {
|
vm.$emit('hook:' + hook);
|
}
|
|
// for child
|
if (vm.$children.length) {
|
vm.$children.forEach(function (v) {
|
return callHook$1(v, hook, params);
|
});
|
}
|
|
return ret
|
}
|
|
function getRootVueVm(page) {
|
return page.$vm.$root;
|
}
|
|
export default function (App) {
|
return {
|
// 页面的初始数据
|
data: {
|
$root: {}
|
},
|
|
// mp lifecycle for vue
|
// 生命周期函数--监听页面加载
|
onLoad:function onLoad(query) {
|
//页面加载的时候
|
var app = new Vue(App);
|
// 挂载Vue对象到page上
|
this.$vm = app;
|
var rootVueVM = app.$root;
|
rootVueVM.__wxExparserNodeId__ = this.__wxExparserNodeId__//fixed by xxxxxx(createIntersectionObserver)
|
rootVueVM.__wxWebviewId__ = this.__wxWebviewId__//fixed by xxxxxx(createIntersectionObserver)
|
|
//初始化mp对象
|
if (!rootVueVM.$mp) {
|
rootVueVM.$mp = {};
|
}
|
var mp = rootVueVM.$mp;
|
mp.mpType = 'page';
|
mp.page = this;
|
mp.query = query;
|
mp.status = 'load';
|
//mount 要在 mp.status = 'load';赋值之后,不然mount方法会重复添加微信Page
|
//具体原因参考mpvue核心库源码,_initMP方法
|
app.$mount();
|
},
|
|
handleProxy: function handleProxy(e) {
|
var rootVueVM = getRootVueVm(this);
|
return rootVueVM.$handleProxyWithVue(e)
|
},
|
|
// 生命周期函数--监听页面显示
|
onShow:function onShow() {
|
var rootVueVM = getRootVueVm(this);
|
var mp = rootVueVM.$mp;
|
mp.status = 'show';
|
callHook$1(rootVueVM, 'onShow');
|
// // 只有页面需要 setData
|
rootVueVM.$nextTick(function () {
|
rootVueVM._initDataToMP();
|
});
|
},
|
|
// 生命周期函数--监听页面初次渲染完成
|
onReady:function onReady() {
|
var rootVueVM = getRootVueVm(this);
|
var mp = rootVueVM.$mp;
|
mp.status = 'ready';
|
callHook$1(rootVueVM, 'onReady');
|
},
|
|
// 生命周期函数--监听页面隐藏
|
onHide: function onHide() {
|
var rootVueVM = getRootVueVm(this);
|
var mp = rootVueVM.$mp;
|
mp.status = 'hide';
|
callHook$1(rootVueVM, 'onHide');
|
},
|
|
// 生命周期函数--监听页面卸载
|
onUnload: function onUnload() {
|
var rootVueVM = getRootVueVm(this);
|
callHook$1(rootVueVM, 'onUnload');
|
rootVueVM.$destroy();
|
},
|
|
// 页面相关事件处理函数--监听用户下拉动作
|
onPullDownRefresh: function onPullDownRefresh() {
|
var rootVueVM = getRootVueVm(this);
|
callHook$1(rootVueVM, 'onPullDownRefresh');
|
},
|
|
// 页面上拉触底事件的处理函数
|
onReachBottom: function onReachBottom() {
|
var rootVueVM = getRootVueVm(this);
|
callHook$1(rootVueVM, 'onReachBottom');
|
},
|
|
// Do something when page scroll
|
onPageScroll: function onPageScroll(options) {
|
var rootVueVM = getRootVueVm(this);
|
callHook$1(rootVueVM, 'onPageScroll', options);
|
},
|
|
// 当前是 tab 页时,点击 tab 时触发
|
onTabItemTap: function onTabItemTap(options) {
|
var rootVueVM = getRootVueVm(this);
|
callHook$1(rootVueVM, 'onTabItemTap', options);
|
},
|
|
// // 用户点击右上角分享
|
onShareAppMessage: App.onShareAppMessage ?
|
function (options) {
|
var rootVueVM = getRootVueVm(this);
|
return callHook$1(rootVueVM, 'onShareAppMessage', options);
|
} : null,
|
|
//fixed by xxxxxx
|
onNavigationBarButtonTap: function onNavigationBarButtonTap(options) {
|
var rootVueVM = getRootVueVm(this);
|
callHook$1(rootVueVM, "onNavigationBarButtonTap", options)
|
},
|
onNavigationBarSearchInputChanged: function onNavigationBarSearchInputChanged(options) {
|
var rootVueVM = getRootVueVm(this);
|
callHook$1(rootVueVM, "onNavigationBarSearchInputChanged", options)
|
},
|
onNavigationBarSearchInputConfirmed: function onNavigationBarSearchInputConfirmed(options) {
|
var rootVueVM = getRootVueVm(this);
|
callHook$1(rootVueVM, "onNavigationBarSearchInputConfirmed", options)
|
},
|
onNavigationBarSearchInputClicked: function onNavigationBarSearchInputClicked(options) {
|
var rootVueVM = getRootVueVm(this);
|
callHook$1(rootVueVM, "onNavigationBarSearchInputClicked", options)
|
},
|
onBackPress: function onBackPress(options) {
|
var rootVueVM = getRootVueVm(this);
|
return callHook$1(rootVueVM, "onBackPress",options)
|
},
|
$getAppWebview:function (e) {
|
return plus.webview.getWebviewById('' + this.__wxWebviewId__)
|
}
|
};
|
}
|