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__) } }; }