提交 9175cb77 编写于 作者: fxy060608's avatar fxy060608

feat(v3): getApp({allowDefault:true})

上级 61f8e378
...@@ -11538,12 +11538,23 @@ var serviceContext = (function () { ...@@ -11538,12 +11538,23 @@ var serviceContext = (function () {
let appCtx; let appCtx;
function getApp$1 () { const defaultApp = {
return appCtx globalData: {}
};
function getApp$1 ({
allowDefault = false
} = {}) {
if (appCtx) { // 真实的 App 已初始化
return appCtx
}
if (allowDefault) { // 返回默认实现
return defaultApp
}
} }
function initGlobalListeners () { function initGlobalListeners () {
const emit = UniServiceJSBridge.emit; const emit = UniServiceJSBridge.emit;
// splashclosed 时开始监听 backbutton // splashclosed 时开始监听 backbutton
plus.globalEvent.addEventListener('splashclosed', () => { plus.globalEvent.addEventListener('splashclosed', () => {
...@@ -11572,12 +11583,12 @@ var serviceContext = (function () { ...@@ -11572,12 +11583,12 @@ var serviceContext = (function () {
}); });
}); });
plus.globalEvent.addEventListener('plusMessage', onPlusMessage$1); plus.globalEvent.addEventListener('plusMessage', onPlusMessage$1);
// nvue webview post message // nvue webview post message
plus.globalEvent.addEventListener('WebviewPostMessage', onPlusMessage$1); plus.globalEvent.addEventListener('WebviewPostMessage', onPlusMessage$1);
} }
function onPlusMessage$1 (e) { function onPlusMessage$1 (e) {
if (process.env.NODE_ENV !== 'production') { if (process.env.NODE_ENV !== 'production') {
console.log('[plusMessage]:[' + Date.now() + ']' + JSON.stringify(e.data)); console.log('[plusMessage]:[' + Date.now() + ']' + JSON.stringify(e.data));
...@@ -11635,7 +11646,11 @@ var serviceContext = (function () { ...@@ -11635,7 +11646,11 @@ var serviceContext = (function () {
appCtx = appVm; appCtx = appVm;
appCtx.globalData = appVm.$options.globalData || {}; Object.assign(appCtx, defaultApp); // 拷贝默认实现
const globalData = appVm.$options.globalData || {};
// merge globalData
appCtx.globalData = Object.assign(globalData, appCtx.globalData);
initOn(UniServiceJSBridge.on, { initOn(UniServiceJSBridge.on, {
getApp: getApp$1, getApp: getApp$1,
......
...@@ -36,12 +36,23 @@ import { ...@@ -36,12 +36,23 @@ import {
let appCtx let appCtx
export function getApp () { const defaultApp = {
return appCtx globalData: {}
}
export function getApp ({
allowDefault = false
} = {}) {
if (appCtx) { // 真实的 App 已初始化
return appCtx
}
if (allowDefault) { // 返回默认实现
return defaultApp
}
} }
function initGlobalListeners () { function initGlobalListeners () {
const emit = UniServiceJSBridge.emit const emit = UniServiceJSBridge.emit
// splashclosed 时开始监听 backbutton // splashclosed 时开始监听 backbutton
plus.globalEvent.addEventListener('splashclosed', () => { plus.globalEvent.addEventListener('splashclosed', () => {
...@@ -70,12 +81,12 @@ function initGlobalListeners () { ...@@ -70,12 +81,12 @@ function initGlobalListeners () {
}) })
}) })
plus.globalEvent.addEventListener('plusMessage', onPlusMessage) plus.globalEvent.addEventListener('plusMessage', onPlusMessage)
// nvue webview post message // nvue webview post message
plus.globalEvent.addEventListener('WebviewPostMessage', onPlusMessage) plus.globalEvent.addEventListener('WebviewPostMessage', onPlusMessage)
} }
function onPlusMessage (e) { function onPlusMessage (e) {
if (process.env.NODE_ENV !== 'production') { if (process.env.NODE_ENV !== 'production') {
console.log('[plusMessage]:[' + Date.now() + ']' + JSON.stringify(e.data)) console.log('[plusMessage]:[' + Date.now() + ']' + JSON.stringify(e.data))
...@@ -133,7 +144,11 @@ export function registerApp (appVm) { ...@@ -133,7 +144,11 @@ export function registerApp (appVm) {
appCtx = appVm appCtx = appVm
appCtx.globalData = appVm.$options.globalData || {} Object.assign(appCtx, defaultApp) // 拷贝默认实现
const globalData = appVm.$options.globalData || {}
// merge globalData
appCtx.globalData = Object.assign(globalData, appCtx.globalData)
initOn(UniServiceJSBridge.on, { initOn(UniServiceJSBridge.on, {
getApp, getApp,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册