diff --git a/packages/uni-app-plus/dist/index.js b/packages/uni-app-plus/dist/index.js index 4738a61e49aaf3dae4b6dd012c7c05618506eedf..5103512f9625ee176a40fd4da9ff4cdcb3e2cf58 100644 --- a/packages/uni-app-plus/dist/index.js +++ b/packages/uni-app-plus/dist/index.js @@ -40,7 +40,7 @@ const camelize = cached((str) => { return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : '') }); -const SYNC_API_RE = /getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64/; +const SYNC_API_RE = /^\$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64/; const CONTEXT_API_RE = /^create|Manager$/; @@ -256,6 +256,22 @@ TODOS.forEach(function (name) { todoApis[name] = createTodoApi(name); }); +const Emitter = new Vue(); + +const $on = Emitter.$on.bind(Emitter); +const $off = Emitter.$off.bind(Emitter); +const $once = Emitter.$once.bind(Emitter); +const $emit = Emitter.$emit.bind(Emitter); + + + +var eventApi = /*#__PURE__*/Object.freeze({ + $on: $on, + $off: $off, + $once: $once, + $emit: $emit +}); + function wrapper$1 (webview) { webview.$processed = true; @@ -1142,6 +1158,9 @@ if (typeof Proxy !== 'undefined') { if (api[name]) { return promisify(name, api[name]) } + if (eventApi[name]) { + return eventApi[name] + } if (!hasOwn(wx, name) && !hasOwn(protocols, name)) { return } @@ -1151,6 +1170,10 @@ if (typeof Proxy !== 'undefined') { } else { uni.upx2px = upx2px; + Object.keys(eventApi).forEach(name => { + uni[name] = eventApi[name]; + }); + Object.keys(api).forEach(name => { uni[name] = promisify(name, api[name]); }); @@ -1161,10 +1184,16 @@ if (typeof Proxy !== 'undefined') { } }); } - -wx.createApp = createApp; -wx.createPage = createPage; -wx.createComponent = createComponent; + +{ + if (typeof global !== 'undefined') { + global.UniEmitter = eventApi; + } +} + +wx.createApp = createApp; +wx.createPage = createPage; +wx.createComponent = createComponent; var uni$1 = uni; diff --git a/packages/uni-mp-alipay/dist/index.js b/packages/uni-mp-alipay/dist/index.js index 008819be135b5605dbaa7ce47919404a2df3b844..7f7916c427de861252512d1f7811fcbe0fd7c7e9 100644 --- a/packages/uni-mp-alipay/dist/index.js +++ b/packages/uni-mp-alipay/dist/index.js @@ -40,7 +40,7 @@ const camelize = cached((str) => { return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : '') }); -const SYNC_API_RE = /getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64/; +const SYNC_API_RE = /^\$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64/; const CONTEXT_API_RE = /^create|Manager$/; @@ -656,6 +656,22 @@ var extraApi = /*#__PURE__*/Object.freeze({ getProvider: getProvider }); +const Emitter = new Vue(); + +const $on = Emitter.$on.bind(Emitter); +const $off = Emitter.$off.bind(Emitter); +const $once = Emitter.$once.bind(Emitter); +const $emit = Emitter.$emit.bind(Emitter); + + + +var eventApi = /*#__PURE__*/Object.freeze({ + $on: $on, + $off: $off, + $once: $once, + $emit: $emit +}); + function setStorageSync (key, data) { return my.setStorageSync({ key, @@ -1667,6 +1683,9 @@ if (typeof Proxy !== 'undefined') { return promisify(name, todoApis[name]) } } + if (eventApi[name]) { + return eventApi[name] + } if (!hasOwn(my, name) && !hasOwn(protocols, name)) { return } @@ -1685,6 +1704,10 @@ if (typeof Proxy !== 'undefined') { }); } + Object.keys(eventApi).forEach(name => { + uni[name] = eventApi[name]; + }); + Object.keys(api).forEach(name => { uni[name] = promisify(name, api[name]); }); @@ -1695,10 +1718,10 @@ if (typeof Proxy !== 'undefined') { } }); } - -my.createApp = createApp; -my.createPage = createPage; -my.createComponent = createComponent; + +my.createApp = createApp; +my.createPage = createPage; +my.createComponent = createComponent; var uni$1 = uni; diff --git a/packages/uni-mp-baidu/dist/index.js b/packages/uni-mp-baidu/dist/index.js index 9a52ab2c61afd80bde5b1cdeb60473efd6749e47..93bb719ea3b6b41dc5b5c858c6f660a4541e4242 100644 --- a/packages/uni-mp-baidu/dist/index.js +++ b/packages/uni-mp-baidu/dist/index.js @@ -40,7 +40,7 @@ const camelize = cached((str) => { return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : '') }); -const SYNC_API_RE = /getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64/; +const SYNC_API_RE = /^\$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64/; const CONTEXT_API_RE = /^create|Manager$/; @@ -413,6 +413,22 @@ var extraApi = /*#__PURE__*/Object.freeze({ getProvider: getProvider }); +const Emitter = new Vue(); + +const $on = Emitter.$on.bind(Emitter); +const $off = Emitter.$off.bind(Emitter); +const $once = Emitter.$once.bind(Emitter); +const $emit = Emitter.$emit.bind(Emitter); + + + +var eventApi = /*#__PURE__*/Object.freeze({ + $on: $on, + $off: $off, + $once: $once, + $emit: $emit +}); + function requestPayment (params) { let parseError = false; if (typeof params.orderInfo === 'string') { @@ -1286,6 +1302,9 @@ if (typeof Proxy !== 'undefined') { return promisify(name, todoApis[name]) } } + if (eventApi[name]) { + return eventApi[name] + } if (!hasOwn(swan, name) && !hasOwn(protocols, name)) { return } @@ -1304,6 +1323,10 @@ if (typeof Proxy !== 'undefined') { }); } + Object.keys(eventApi).forEach(name => { + uni[name] = eventApi[name]; + }); + Object.keys(api).forEach(name => { uni[name] = promisify(name, api[name]); }); @@ -1314,10 +1337,10 @@ if (typeof Proxy !== 'undefined') { } }); } - -swan.createApp = createApp; -swan.createPage = createPage; -swan.createComponent = createComponent; + +swan.createApp = createApp; +swan.createPage = createPage; +swan.createComponent = createComponent; var uni$1 = uni; diff --git a/packages/uni-mp-toutiao/dist/index.js b/packages/uni-mp-toutiao/dist/index.js index 3ee4026ed0239fb66e0622cac8c97ce49504da16..0fdab1712a73801f1622447d8fb076a2d2b7b30c 100644 --- a/packages/uni-mp-toutiao/dist/index.js +++ b/packages/uni-mp-toutiao/dist/index.js @@ -40,7 +40,7 @@ const camelize = cached((str) => { return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : '') }); -const SYNC_API_RE = /getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64/; +const SYNC_API_RE = /^\$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64/; const CONTEXT_API_RE = /^create|Manager$/; @@ -474,6 +474,22 @@ var extraApi = /*#__PURE__*/Object.freeze({ getProvider: getProvider }); +const Emitter = new Vue(); + +const $on = Emitter.$on.bind(Emitter); +const $off = Emitter.$off.bind(Emitter); +const $once = Emitter.$once.bind(Emitter); +const $emit = Emitter.$emit.bind(Emitter); + + + +var eventApi = /*#__PURE__*/Object.freeze({ + $on: $on, + $off: $off, + $once: $once, + $emit: $emit +}); + var api = /*#__PURE__*/Object.freeze({ @@ -1361,6 +1377,9 @@ if (typeof Proxy !== 'undefined') { return promisify(name, todoApis[name]) } } + if (eventApi[name]) { + return eventApi[name] + } if (!hasOwn(tt, name) && !hasOwn(protocols, name)) { return } @@ -1379,6 +1398,10 @@ if (typeof Proxy !== 'undefined') { }); } + Object.keys(eventApi).forEach(name => { + uni[name] = eventApi[name]; + }); + Object.keys(api).forEach(name => { uni[name] = promisify(name, api[name]); }); @@ -1389,10 +1412,10 @@ if (typeof Proxy !== 'undefined') { } }); } - -tt.createApp = createApp; -tt.createPage = createPage; -tt.createComponent = createComponent; + +tt.createApp = createApp; +tt.createPage = createPage; +tt.createComponent = createComponent; var uni$1 = uni; diff --git a/packages/uni-mp-weixin/dist/index.js b/packages/uni-mp-weixin/dist/index.js index 83ed48fc0d4e596d932d0c69abbb4c4f366593cb..fcebb280e02db27d95c682d4d28475a41554a3bf 100644 --- a/packages/uni-mp-weixin/dist/index.js +++ b/packages/uni-mp-weixin/dist/index.js @@ -40,7 +40,7 @@ const camelize = cached((str) => { return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : '') }); -const SYNC_API_RE = /getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64/; +const SYNC_API_RE = /^\$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64/; const CONTEXT_API_RE = /^create|Manager$/; @@ -326,6 +326,22 @@ var extraApi = /*#__PURE__*/Object.freeze({ getProvider: getProvider }); +const Emitter = new Vue(); + +const $on = Emitter.$on.bind(Emitter); +const $off = Emitter.$off.bind(Emitter); +const $once = Emitter.$once.bind(Emitter); +const $emit = Emitter.$emit.bind(Emitter); + + + +var eventApi = /*#__PURE__*/Object.freeze({ + $on: $on, + $off: $off, + $once: $once, + $emit: $emit +}); + var api = /*#__PURE__*/Object.freeze({ @@ -1121,6 +1137,9 @@ if (typeof Proxy !== 'undefined') { return promisify(name, todoApis[name]) } } + if (eventApi[name]) { + return eventApi[name] + } if (!hasOwn(wx, name) && !hasOwn(protocols, name)) { return } @@ -1139,6 +1158,10 @@ if (typeof Proxy !== 'undefined') { }); } + Object.keys(eventApi).forEach(name => { + uni[name] = eventApi[name]; + }); + Object.keys(api).forEach(name => { uni[name] = promisify(name, api[name]); }); @@ -1149,10 +1172,10 @@ if (typeof Proxy !== 'undefined') { } }); } - -wx.createApp = createApp; -wx.createPage = createPage; -wx.createComponent = createComponent; + +wx.createApp = createApp; +wx.createPage = createPage; +wx.createComponent = createComponent; var uni$1 = uni; diff --git a/src/core/helpers/promise.js b/src/core/helpers/promise.js index 16aab48f0cae7f5206c6a8697fb22b2a72e7d500..f356cb0d7a4e411f64ddc62d65d6aa954b37e6e6 100644 --- a/src/core/helpers/promise.js +++ b/src/core/helpers/promise.js @@ -2,7 +2,7 @@ import { isFn } from 'uni-shared' -const SYNC_API_RE = /getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64/ +const SYNC_API_RE = /^\$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64/ const CONTEXT_API_RE = /^create|Manager$/ diff --git a/src/core/runtime/event.js b/src/core/runtime/event.js new file mode 100644 index 0000000000000000000000000000000000000000..e34bb752b54ecf7e32ebb22815cc325180f7745d --- /dev/null +++ b/src/core/runtime/event.js @@ -0,0 +1 @@ +export * from '../service/api/event' diff --git a/src/core/runtime/index.js b/src/core/runtime/index.js index c80c2d9af887025897bcbc39880bb09962dc2bf6..9fca81a42b09976e564c6ca43dfd231574755ee6 100644 --- a/src/core/runtime/index.js +++ b/src/core/runtime/index.js @@ -16,6 +16,8 @@ import todoApi from './todo' import * as extraApi from './extra' +import * as eventApi from './event' + import * as api from 'uni-platform/service/api/index.js' import { @@ -59,6 +61,9 @@ if (typeof Proxy !== 'undefined') { return promisify(name, todoApi[name]) } } + if (eventApi[name]) { + return eventApi[name] + } if (!hasOwn(__GLOBAL__, name) && !hasOwn(protocols, name)) { return } @@ -77,6 +82,10 @@ if (typeof Proxy !== 'undefined') { }) } + Object.keys(eventApi).forEach(name => { + uni[name] = eventApi[name] + }) + Object.keys(api).forEach(name => { uni[name] = promisify(name, api[name]) }) @@ -87,15 +96,21 @@ if (typeof Proxy !== 'undefined') { } }) } - -__GLOBAL__.createApp = createApp -__GLOBAL__.createPage = createPage -__GLOBAL__.createComponent = createComponent - -export { - createApp, - createPage, - createComponent -} + +if (__PLATFORM__ === 'app-plus') { + if (typeof global !== 'undefined') { + global.UniEmitter = eventApi + } +} + +__GLOBAL__.createApp = createApp +__GLOBAL__.createPage = createPage +__GLOBAL__.createComponent = createComponent + +export { + createApp, + createPage, + createComponent +} export default uni diff --git a/src/core/service/api/event.js b/src/core/service/api/event.js new file mode 100644 index 0000000000000000000000000000000000000000..320bc5209097cb9461bc217c2325108b0cdbe483 --- /dev/null +++ b/src/core/service/api/event.js @@ -0,0 +1,8 @@ +import Vue from 'vue' + +const Emitter = new Vue() + +export const $on = Emitter.$on.bind(Emitter) +export const $off = Emitter.$off.bind(Emitter) +export const $once = Emitter.$once.bind(Emitter) +export const $emit = Emitter.$emit.bind(Emitter)