diff --git a/packages/uni-api/src/service/plugin/push.ts b/packages/uni-api/src/service/plugin/push.ts index e2caf807335df37f2b44d49968536d4fc7e6d065..509c171e8d066efa63f9dbbee194b80211699a2a 100644 --- a/packages/uni-api/src/service/plugin/push.ts +++ b/packages/uni-api/src/service/plugin/push.ts @@ -137,6 +137,9 @@ const onPushMessageCallbacks: OnPushMessageCallback[] = [] let listening = false // 不使用 defineOnApi 实现,是因为 defineOnApi 依赖 UniServiceJSBridge ,该对象目前在小程序上未提供,故简单实现 export const onPushMessage: (fn: OnPushMessageCallback) => void = (fn) => { + if (onPushMessageCallbacks.indexOf(fn) === -1) { + onPushMessageCallbacks.push(fn) + } // 不能程序启动时就监听,因为离线事件,仅触发一次,框架监听后,无法转发给还没开始监听的开发者 if (__PLATFORM__ === 'app' && !listening) { listening = true @@ -153,9 +156,6 @@ export const onPushMessage: (fn: OnPushMessageCallback) => void = (fn) => { }) }) } - if (onPushMessageCallbacks.indexOf(fn) === -1) { - onPushMessageCallbacks.push(fn) - } } export const offPushMessage: (fn?: OnPushMessageCallback) => void = (fn) => { diff --git a/packages/uni-app-plus/dist/uni.runtime.esm.js b/packages/uni-app-plus/dist/uni.runtime.esm.js index 8be64a30f7d35effbfeaf8b6d9be77627ba09790..d50f0ca31fc871dbc0217550ab9c4cb87729293d 100644 --- a/packages/uni-app-plus/dist/uni.runtime.esm.js +++ b/packages/uni-app-plus/dist/uni.runtime.esm.js @@ -11163,6 +11163,9 @@ const onPushMessageCallbacks = []; let listening = false; // 不使用 defineOnApi 实现,是因为 defineOnApi 依赖 UniServiceJSBridge ,该对象目前在小程序上未提供,故简单实现 const onPushMessage = (fn) => { + if (onPushMessageCallbacks.indexOf(fn) === -1) { + onPushMessageCallbacks.push(fn); + } // 不能程序启动时就监听,因为离线事件,仅触发一次,框架监听后,无法转发给还没开始监听的开发者 if (!listening) { listening = true; @@ -11179,9 +11182,6 @@ const onPushMessage = (fn) => { }); }); } - if (onPushMessageCallbacks.indexOf(fn) === -1) { - onPushMessageCallbacks.push(fn); - } }; const offPushMessage = (fn) => { if (!fn) {