diff --git a/packages/uni-app-plus/dist/index.v3.js b/packages/uni-app-plus/dist/index.v3.js index fc28260380a879ef20fe53857958cf3b17c3f505..92ee3425f49ead0410dd037e626e946b43590026 100644 --- a/packages/uni-app-plus/dist/index.v3.js +++ b/packages/uni-app-plus/dist/index.v3.js @@ -11538,12 +11538,23 @@ var serviceContext = (function () { let appCtx; - function getApp$1 () { - return appCtx + const defaultApp = { + globalData: {} + }; + + function getApp$1 ({ + allowDefault = false + } = {}) { + if (appCtx) { // 真实的 App 已初始化 + return appCtx + } + if (allowDefault) { // 返回默认实现 + return defaultApp + } } function initGlobalListeners () { - const emit = UniServiceJSBridge.emit; + const emit = UniServiceJSBridge.emit; // splashclosed 时开始监听 backbutton plus.globalEvent.addEventListener('splashclosed', () => { @@ -11572,12 +11583,12 @@ var serviceContext = (function () { }); }); - plus.globalEvent.addEventListener('plusMessage', onPlusMessage$1); - - // nvue webview post message + plus.globalEvent.addEventListener('plusMessage', onPlusMessage$1); + + // nvue webview post message plus.globalEvent.addEventListener('WebviewPostMessage', onPlusMessage$1); - } - + } + function onPlusMessage$1 (e) { if (process.env.NODE_ENV !== 'production') { console.log('[plusMessage]:[' + Date.now() + ']' + JSON.stringify(e.data)); @@ -11635,7 +11646,11 @@ var serviceContext = (function () { 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, { getApp: getApp$1, diff --git a/src/platforms/app-plus/service/framework/app.js b/src/platforms/app-plus/service/framework/app.js index 66b5cdf3efccb34c6b6d426f0544cd4d2569ec0f..122f2026b0a10b8013135fd337305d4ae9d1f474 100644 --- a/src/platforms/app-plus/service/framework/app.js +++ b/src/platforms/app-plus/service/framework/app.js @@ -36,12 +36,23 @@ import { let appCtx -export function getApp () { - return appCtx +const defaultApp = { + globalData: {} +} + +export function getApp ({ + allowDefault = false +} = {}) { + if (appCtx) { // 真实的 App 已初始化 + return appCtx + } + if (allowDefault) { // 返回默认实现 + return defaultApp + } } function initGlobalListeners () { - const emit = UniServiceJSBridge.emit + const emit = UniServiceJSBridge.emit // splashclosed 时开始监听 backbutton plus.globalEvent.addEventListener('splashclosed', () => { @@ -70,12 +81,12 @@ function initGlobalListeners () { }) }) - plus.globalEvent.addEventListener('plusMessage', onPlusMessage) - - // nvue webview post message + plus.globalEvent.addEventListener('plusMessage', onPlusMessage) + + // nvue webview post message plus.globalEvent.addEventListener('WebviewPostMessage', onPlusMessage) -} - +} + function onPlusMessage (e) { if (process.env.NODE_ENV !== 'production') { console.log('[plusMessage]:[' + Date.now() + ']' + JSON.stringify(e.data)) @@ -133,7 +144,11 @@ export function registerApp (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, { getApp,