提交 107d9d6e 编写于 作者: fxy060608's avatar fxy060608

refactor: errorHandler #1093

上级 12978acd
......@@ -47,10 +47,6 @@ Vue.use(require('uni-view/plugins').default, {
routes: __uniRoutes
})
Vue.config.errorHandler = function (err, vm, info) {
UniServiceJSBridge.emit('onError', err)
}
initVue(Vue)
require('uni-platform/components')
require('uni-components')
......@@ -12155,9 +12155,22 @@ var serviceContext = (function () {
'uni-web-view'
];
function hasLifecycleHook (vueOptions = {}, hook) {
return Array.isArray(vueOptions[hook]) && vueOptions[hook].length
}
// 使用白名单过滤(前期有一批自定义组件使用了 uni-)
function initVue (Vue) {
function initVue (Vue) {
Vue.config.errorHandler = function (err) {
const app = getApp();
if (app && hasLifecycleHook(app.$options, 'onError')) {
app.__call_hook('onError', err);
} else {
console.error(err);
}
};
const oldIsReservedTag = Vue.config.isReservedTag;
Vue.config.isReservedTag = function (tag) {
......@@ -12768,10 +12781,6 @@ var serviceContext = (function () {
return key
}
function hasLifecycleHook (vueOptions = {}, hook) {
return Array.isArray(vueOptions[hook]) && vueOptions[hook].length
}
/* @flow */
const LIFECYCLE_HOOKS = [
......
......@@ -5808,8 +5808,14 @@ function getTarget(obj, path) {
function internalMixin(Vue) {
Vue.config.errorHandler = function(err) {
console.error(err);
Vue.config.errorHandler = function(err) {
/* eslint-disable no-undef */
var app = getApp();
if (app && app.onError) {
app.onError(err);
} else {
console.error(err);
}
};
var oldEmit = Vue.prototype.$emit;
......@@ -5832,14 +5838,14 @@ function internalMixin(Vue) {
if (this.$scope && this.$scope[method]) {
return this.$scope[method](args)
}
// mp-alipay
if(typeof my === 'undefined'){
return
// mp-alipay
if (typeof my === 'undefined') {
return
}
if (method === 'createSelectorQuery') {
if (method === 'createSelectorQuery') {
/* eslint-disable no-undef */
return my.createSelectorQuery(args)
} else if (method === 'createIntersectionObserver') {
} else if (method === 'createIntersectionObserver') {
/* eslint-disable no-undef */
return my.createIntersectionObserver(args)
}
......
// 使用白名单过滤(前期有一批自定义组件使用了 uni-)
import tags from 'uni-helpers/tags'
export default function initVue (Vue) {
import {
hasLifecycleHook
} from 'uni-helpers/index'
export default function initVue (Vue) {
Vue.config.errorHandler = function (err) {
const app = getApp()
if (app && hasLifecycleHook(app.$options, 'onError')) {
app.__call_hook('onError', err)
} else {
console.error(err)
}
}
const oldIsReservedTag = Vue.config.isReservedTag
Vue.config.isReservedTag = function (tag) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册