diff --git a/packages/api-proxy/src/platform/api/lifecycle/index.ali.js b/packages/api-proxy/src/platform/api/lifecycle/index.ali.js new file mode 100644 index 0000000000..cde6425113 --- /dev/null +++ b/packages/api-proxy/src/platform/api/lifecycle/index.ali.js @@ -0,0 +1,7 @@ +function getEnterOptionsSync () { + my.getEnterOptionsSync() +} + +export { + getEnterOptionsSync +} diff --git a/packages/api-proxy/src/platform/api/lifecycle/index.js b/packages/api-proxy/src/platform/api/lifecycle/index.js new file mode 100644 index 0000000000..dc931e5f02 --- /dev/null +++ b/packages/api-proxy/src/platform/api/lifecycle/index.js @@ -0,0 +1,9 @@ +import { getEnvObj, envError } from '../../../common/js' + +const ENV_OBJ = getEnvObj() + +const getEnterOptionsSync = ENV_OBJ.getEnterOptionsSync || envError('getEnterOptionsSync') + +export { + getEnterOptionsSync +} diff --git a/packages/api-proxy/src/platform/api/lifecycle/index.web.js b/packages/api-proxy/src/platform/api/lifecycle/index.web.js new file mode 100644 index 0000000000..c4eaf200a7 --- /dev/null +++ b/packages/api-proxy/src/platform/api/lifecycle/index.web.js @@ -0,0 +1,12 @@ +import { isBrowser, throwSSRWarning } from '../../../common/js' +function getEnterOptionsSync () { + if (!isBrowser) { + throwSSRWarning('getEnterOptionsSync API is running in non browser environments') + return + } + return global.__mpxEnterOptions || {} +} + +export { + getEnterOptionsSync +} diff --git a/packages/api-proxy/src/platform/index.js b/packages/api-proxy/src/platform/index.js index f065c70b8e..390c4f88b1 100644 --- a/packages/api-proxy/src/platform/index.js +++ b/packages/api-proxy/src/platform/index.js @@ -104,3 +104,6 @@ export * from './api/video' // onWindowResize, offWindowResize export * from './api/window' + +// getEnterOptionsSync +export * from './api/lifecycle' diff --git a/packages/core/src/platform/createApp.js b/packages/core/src/platform/createApp.js index 4d91abb37c..22a635abb9 100644 --- a/packages/core/src/platform/createApp.js +++ b/packages/core/src/platform/createApp.js @@ -44,6 +44,7 @@ export default function createApp (option, config = {}) { shareTicket: '', referrerInfo: {} } + global.__mpxEnterOptions = options this.$options.onLaunch && this.$options.onLaunch.call(this, options) global.__mpxAppCbs = global.__mpxAppCbs || { show: [], diff --git a/packages/webpack-plugin/lib/runtime/components/web/mpx-navigator.vue b/packages/webpack-plugin/lib/runtime/components/web/mpx-navigator.vue index 11c56994dc..29244fd6c7 100644 --- a/packages/webpack-plugin/lib/runtime/components/web/mpx-navigator.vue +++ b/packages/webpack-plugin/lib/runtime/components/web/mpx-navigator.vue @@ -50,6 +50,11 @@ url: this.url }) break + case 'switchTab': + mpx.switchTab && mpx.switchTab({ + url: this.url + }) + break } } })