diff --git a/packages/uni-api/src/service/plugin/push.ts b/packages/uni-api/src/service/plugin/push.ts index 706fde0dab22596f761fd507e855decb6a9e0ab9..e93dd36d7e785e53a0cdc8998510c332ad8cfdc6 100644 --- a/packages/uni-api/src/service/plugin/push.ts +++ b/packages/uni-api/src/service/plugin/push.ts @@ -54,17 +54,12 @@ export function invokePushCallback( cidErrMsg = args.errMsg invokeGetPushCidCallbacks(cid, args.errMsg) } else if (args.type === 'pushMsg') { - for (let i = 0; i < onPushMessageCallbacks.length; i++) { - const msg: OnPushMessageSuccess = { + onPushMessageCallbacks.forEach((callback) => { + callback({ type: 'receive', data: normalizePushMessage(args.message), - } - onPushMessageCallbacks[i](msg) - if (msg.stopped) { - // 消息被中断,比如页面直达的 push 信息 - break - } - } + }) + }) } else if (args.type === 'click') { onPushMessageCallbacks.forEach((callback) => { callback({ @@ -111,7 +106,6 @@ export const getPushClientId = defineAsyncApi( interface OnPushMessageSuccess { type: 'click' | 'receive' data: unknown - stopped?: boolean } type OnPushMessageCallback = (result: OnPushMessageSuccess) => void diff --git a/packages/uni-app-plus/dist/uni.runtime.esm.js b/packages/uni-app-plus/dist/uni.runtime.esm.js index 60b712c339bb4d0faf440991009d0fcc5acd6975..5e28f555ef2d6f811e80011baf6029d4456f9cff 100644 --- a/packages/uni-app-plus/dist/uni.runtime.esm.js +++ b/packages/uni-app-plus/dist/uni.runtime.esm.js @@ -11096,17 +11096,12 @@ function invokePushCallback(args) { invokeGetPushCidCallbacks(cid, args.errMsg); } else if (args.type === 'pushMsg') { - for (let i = 0; i < onPushMessageCallbacks.length; i++) { - const msg = { + onPushMessageCallbacks.forEach((callback) => { + callback({ type: 'receive', data: normalizePushMessage(args.message), - }; - onPushMessageCallbacks[i](msg); - if (msg.stopped) { - // 消息被中断,比如页面直达的 push 信息 - break; - } - } + }); + }); } else if (args.type === 'click') { onPushMessageCallbacks.forEach((callback) => { diff --git a/packages/uni-h5/dist/uni-h5.es.js b/packages/uni-h5/dist/uni-h5.es.js index 6bd89a0f242bccf0c7166de3011f9ff8a9190c62..9886c296e8e3f04829ba547eb8d14d0d16664141 100644 --- a/packages/uni-h5/dist/uni-h5.es.js +++ b/packages/uni-h5/dist/uni-h5.es.js @@ -4625,16 +4625,12 @@ function invokePushCallback(args) { cidErrMsg = args.errMsg; invokeGetPushCidCallbacks(cid, args.errMsg); } else if (args.type === "pushMsg") { - for (let i = 0; i < onPushMessageCallbacks.length; i++) { - const msg = { + onPushMessageCallbacks.forEach((callback) => { + callback({ type: "receive", data: normalizePushMessage(args.message) - }; - onPushMessageCallbacks[i](msg); - if (msg.stopped) { - break; - } - } + }); + }); } else if (args.type === "click") { onPushMessageCallbacks.forEach((callback) => { callback({ diff --git a/packages/uni-mp-alipay/dist/uni.api.esm.js b/packages/uni-mp-alipay/dist/uni.api.esm.js index 7003b155a346314fd86d3e78d0d6dda84dd2828b..ee92f05793f04800390e2d37f7947f9d49749314 100644 --- a/packages/uni-mp-alipay/dist/uni.api.esm.js +++ b/packages/uni-mp-alipay/dist/uni.api.esm.js @@ -671,17 +671,12 @@ function invokePushCallback(args) { invokeGetPushCidCallbacks(cid, args.errMsg); } else if (args.type === 'pushMsg') { - for (let i = 0; i < onPushMessageCallbacks.length; i++) { - const msg = { + onPushMessageCallbacks.forEach((callback) => { + callback({ type: 'receive', data: normalizePushMessage(args.message), - }; - onPushMessageCallbacks[i](msg); - if (msg.stopped) { - // 消息被中断,比如页面直达的 push 信息 - break; - } - } + }); + }); } else if (args.type === 'click') { onPushMessageCallbacks.forEach((callback) => { diff --git a/packages/uni-mp-baidu/dist/uni.api.esm.js b/packages/uni-mp-baidu/dist/uni.api.esm.js index 433db64f54405070cd4cafb49c20dfacdc20fab3..0f667cc3a4276753f5fd7f83d5689f15c6edd10d 100644 --- a/packages/uni-mp-baidu/dist/uni.api.esm.js +++ b/packages/uni-mp-baidu/dist/uni.api.esm.js @@ -671,17 +671,12 @@ function invokePushCallback(args) { invokeGetPushCidCallbacks(cid, args.errMsg); } else if (args.type === 'pushMsg') { - for (let i = 0; i < onPushMessageCallbacks.length; i++) { - const msg = { + onPushMessageCallbacks.forEach((callback) => { + callback({ type: 'receive', data: normalizePushMessage(args.message), - }; - onPushMessageCallbacks[i](msg); - if (msg.stopped) { - // 消息被中断,比如页面直达的 push 信息 - break; - } - } + }); + }); } else if (args.type === 'click') { onPushMessageCallbacks.forEach((callback) => { diff --git a/packages/uni-mp-kuaishou/dist/uni.api.esm.js b/packages/uni-mp-kuaishou/dist/uni.api.esm.js index ece0ad994033574c540488fe85d4bfc487a9a571..d4e7da7c1cbac51b325c3c242a1e138da418bf13 100644 --- a/packages/uni-mp-kuaishou/dist/uni.api.esm.js +++ b/packages/uni-mp-kuaishou/dist/uni.api.esm.js @@ -671,17 +671,12 @@ function invokePushCallback(args) { invokeGetPushCidCallbacks(cid, args.errMsg); } else if (args.type === 'pushMsg') { - for (let i = 0; i < onPushMessageCallbacks.length; i++) { - const msg = { + onPushMessageCallbacks.forEach((callback) => { + callback({ type: 'receive', data: normalizePushMessage(args.message), - }; - onPushMessageCallbacks[i](msg); - if (msg.stopped) { - // 消息被中断,比如页面直达的 push 信息 - break; - } - } + }); + }); } else if (args.type === 'click') { onPushMessageCallbacks.forEach((callback) => { diff --git a/packages/uni-mp-lark/dist/uni.api.esm.js b/packages/uni-mp-lark/dist/uni.api.esm.js index 65c56def211c02578ff91941e63fc04c2dcead04..c67b7d2b5dc322ba2826b69966f6efb1cf676e79 100644 --- a/packages/uni-mp-lark/dist/uni.api.esm.js +++ b/packages/uni-mp-lark/dist/uni.api.esm.js @@ -671,17 +671,12 @@ function invokePushCallback(args) { invokeGetPushCidCallbacks(cid, args.errMsg); } else if (args.type === 'pushMsg') { - for (let i = 0; i < onPushMessageCallbacks.length; i++) { - const msg = { + onPushMessageCallbacks.forEach((callback) => { + callback({ type: 'receive', data: normalizePushMessage(args.message), - }; - onPushMessageCallbacks[i](msg); - if (msg.stopped) { - // 消息被中断,比如页面直达的 push 信息 - break; - } - } + }); + }); } else if (args.type === 'click') { onPushMessageCallbacks.forEach((callback) => { diff --git a/packages/uni-mp-qq/dist/uni.api.esm.js b/packages/uni-mp-qq/dist/uni.api.esm.js index c33cea0b086414c453fd7ed18963a38df4c17d61..ff0b5c098f6aaa36419050d16f19a4571a3e67c4 100644 --- a/packages/uni-mp-qq/dist/uni.api.esm.js +++ b/packages/uni-mp-qq/dist/uni.api.esm.js @@ -671,17 +671,12 @@ function invokePushCallback(args) { invokeGetPushCidCallbacks(cid, args.errMsg); } else if (args.type === 'pushMsg') { - for (let i = 0; i < onPushMessageCallbacks.length; i++) { - const msg = { + onPushMessageCallbacks.forEach((callback) => { + callback({ type: 'receive', data: normalizePushMessage(args.message), - }; - onPushMessageCallbacks[i](msg); - if (msg.stopped) { - // 消息被中断,比如页面直达的 push 信息 - break; - } - } + }); + }); } else if (args.type === 'click') { onPushMessageCallbacks.forEach((callback) => { diff --git a/packages/uni-mp-toutiao/dist/uni.api.esm.js b/packages/uni-mp-toutiao/dist/uni.api.esm.js index 534bcc40288f959d59c8ebe423d02d8607ff2068..3413216bd9e4ee7fdb8a9571252f5a62325573ea 100644 --- a/packages/uni-mp-toutiao/dist/uni.api.esm.js +++ b/packages/uni-mp-toutiao/dist/uni.api.esm.js @@ -671,17 +671,12 @@ function invokePushCallback(args) { invokeGetPushCidCallbacks(cid, args.errMsg); } else if (args.type === 'pushMsg') { - for (let i = 0; i < onPushMessageCallbacks.length; i++) { - const msg = { + onPushMessageCallbacks.forEach((callback) => { + callback({ type: 'receive', data: normalizePushMessage(args.message), - }; - onPushMessageCallbacks[i](msg); - if (msg.stopped) { - // 消息被中断,比如页面直达的 push 信息 - break; - } - } + }); + }); } else if (args.type === 'click') { onPushMessageCallbacks.forEach((callback) => { diff --git a/packages/uni-mp-weixin/dist/uni.api.esm.js b/packages/uni-mp-weixin/dist/uni.api.esm.js index ad968cd371b1f3b4cdbb827a280273bbe021be88..656dc79bde74850d6d06de4e5531262f800f347c 100644 --- a/packages/uni-mp-weixin/dist/uni.api.esm.js +++ b/packages/uni-mp-weixin/dist/uni.api.esm.js @@ -635,17 +635,12 @@ function invokePushCallback(args) { invokeGetPushCidCallbacks(cid, args.errMsg); } else if (args.type === 'pushMsg') { - for (let i = 0; i < onPushMessageCallbacks.length; i++) { - const msg = { + onPushMessageCallbacks.forEach((callback) => { + callback({ type: 'receive', data: normalizePushMessage(args.message), - }; - onPushMessageCallbacks[i](msg); - if (msg.stopped) { - // 消息被中断,比如页面直达的 push 信息 - break; - } - } + }); + }); } else if (args.type === 'click') { onPushMessageCallbacks.forEach((callback) => { diff --git a/packages/uni-push/dist/uni-push.es.js b/packages/uni-push/dist/uni-push.es.js index 48b8c1acbbe5800a695fd3e1eeb6bc9cfa6cc060..e0f491cb0829cb8f83e2ce29852943e6a5c45353 100644 --- a/packages/uni-push/dist/uni-push.es.js +++ b/packages/uni-push/dist/uni-push.es.js @@ -100,41 +100,6 @@ e?.onClose(t); var GtPush = /*@__PURE__*/getDefaultExportFromCjs(gtpushMin); -function initPushRoute() { - // @ts-expect-error - uni.onPushMessage((res) => { - if (res.data && res.data.path) { - if (res.type === 'click') { - const url = res.data.path; - // 优先使用 navigateTo - uni.navigateTo({ - url, - fail(result) { - // 说明是 tabBar 页面,必须使用 switchTab - if (result.errMsg.indexOf('tabbar')) { - uni.switchTab({ - url, - }); - } - }, - }); - } - else if (res.type === 'receive') { - // 仅 App 端 - if (typeof plus !== 'undefined' && plus.push) { - // 创建通知栏,并屏蔽消息的继续传递 - plus.push.createMessage(res.data.content, JSON.stringify(res.data.payload), { - title: res.data.title, - path: res.data.path, - }); - // 内部属性,停止传播 - res.stopped = true; - } - } - } - }); -} - // if (process.env.UNI_PUSH_DEBUG) { // GtPush.setDebugMode(true) // } @@ -187,15 +152,4 @@ else { }); }, }); - initPushRoute(); - // 不用条件编译。App端仍需监听 - if (typeof plus !== 'undefined' && plus.push) { - plus.push.addEventListener('click', (result) => { - // @ts-expect-error - uni.invokePushCallback({ - type: 'click', - message: result, - }); - }); - } } diff --git a/packages/uni-push/dist/uni-push.plus.es.js b/packages/uni-push/dist/uni-push.plus.es.js index f4caafebc09ff81cb1d2e3f96eaba9023c949c9e..bcdc4a988560dd7052847f9bba00c859a6588d3f 100644 --- a/packages/uni-push/dist/uni-push.plus.es.js +++ b/packages/uni-push/dist/uni-push.plus.es.js @@ -1,43 +1,7 @@ -function initPushRoute() { - // @ts-expect-error - uni.onPushMessage((res) => { - if (res.data && res.data.path) { - if (res.type === 'click') { - const url = res.data.path; - // 优先使用 navigateTo - uni.navigateTo({ - url, - fail(result) { - // 说明是 tabBar 页面,必须使用 switchTab - if (result.errMsg.indexOf('tabbar')) { - uni.switchTab({ - url, - }); - } - }, - }); - } - else if (res.type === 'receive') { - // 仅 App 端 - if (typeof plus !== 'undefined' && plus.push) { - // 创建通知栏,并屏蔽消息的继续传递 - plus.push.createMessage(res.data.content, JSON.stringify(res.data.payload), { - title: res.data.title, - path: res.data.path, - }); - // 内部属性,停止传播 - res.stopped = true; - } - } - } - }); -} - // @ts-expect-error uni.invokePushCallback({ type: 'enabled', }); -initPushRoute(); Promise.resolve().then(() => { plus.push.setAutoNotification && plus.push.setAutoNotification(false); const info = plus.push.getClientInfo(); diff --git a/packages/uni-push/src/index.ts b/packages/uni-push/src/index.ts index 921a3d990974b2865fb7f55b4fa8ea14ba07b0b5..0070f22bdc86d8ac4f3292994b1687ba032046c5 100644 --- a/packages/uni-push/src/index.ts +++ b/packages/uni-push/src/index.ts @@ -1,5 +1,4 @@ import GtPush from '../lib/gtpush-min' -import { initPushRoute } from './route' // if (process.env.UNI_PUSH_DEBUG) { // GtPush.setDebugMode(true) @@ -54,15 +53,4 @@ if (!appid) { }) }, }) - initPushRoute() - // 不用条件编译。App端仍需监听 - if (typeof plus !== 'undefined' && plus.push) { - plus.push.addEventListener('click', (result) => { - // @ts-expect-error - uni.invokePushCallback({ - type: 'click', - message: result, - }) - }) - } } diff --git a/packages/uni-push/src/plus.ts b/packages/uni-push/src/plus.ts index 30383a522ad2a227ae2de3cdb96eeae1d15d127e..6aaecbc39847b1ddbdbd1efafda71c3591e64086 100644 --- a/packages/uni-push/src/plus.ts +++ b/packages/uni-push/src/plus.ts @@ -1,10 +1,7 @@ -import { initPushRoute } from './route' - // @ts-expect-error uni.invokePushCallback({ type: 'enabled', }) -initPushRoute() Promise.resolve().then(() => { plus.push.setAutoNotification && plus.push.setAutoNotification(false) const info = plus.push.getClientInfo() diff --git a/packages/uni-push/src/route.ts b/packages/uni-push/src/route.ts index fab50df372c6679e792132afbfdca09cebbd4c74..93478bb43d53eed53c3b1c09156937d1c00a7006 100644 --- a/packages/uni-push/src/route.ts +++ b/packages/uni-push/src/route.ts @@ -7,41 +7,23 @@ interface OnPushMessageSuccess { forceNotification?: boolean path?: string } - stopped?: boolean } export function initPushRoute() { // @ts-expect-error uni.onPushMessage((res: OnPushMessageSuccess) => { - if (res.data && res.data.path) { - if (res.type === 'click') { - const url = res.data.path - // 优先使用 navigateTo - uni.navigateTo({ - url, - fail(result) { - // 说明是 tabBar 页面,必须使用 switchTab - if (result.errMsg.indexOf('tabbar')) { - uni.switchTab({ - url, - }) - } - }, - }) - } else if (res.type === 'receive') { - // 仅 App 端 - if (typeof plus !== 'undefined' && plus.push) { - // 创建通知栏,并屏蔽消息的继续传递 - plus.push.createMessage( - res.data.content, - JSON.stringify(res.data.payload), - { - title: res.data.title, - path: res.data.path, - } as any - ) - // 内部属性,停止传播 - res.stopped = true - } + if (res.data && res.data.path && res.type === 'receive') { + // 仅 App 端 + if (typeof plus !== 'undefined' && plus.push) { + // 创建通知栏,并屏蔽消息的继续传递 + plus.push.createMessage( + res.data.content, + JSON.stringify(res.data.payload), + { + title: res.data.title, + forceNotification: true, + path: res.data.path, + } as any + ) } } }) diff --git a/packages/uni-quickapp-webview/dist/uni.api.esm.js b/packages/uni-quickapp-webview/dist/uni.api.esm.js index 25bcba0bc12a0df3f29174cbc2282343e5362d72..accce9ba6d5f6bb2c612cd62f960ad5b7e82d2ed 100644 --- a/packages/uni-quickapp-webview/dist/uni.api.esm.js +++ b/packages/uni-quickapp-webview/dist/uni.api.esm.js @@ -671,17 +671,12 @@ function invokePushCallback(args) { invokeGetPushCidCallbacks(cid, args.errMsg); } else if (args.type === 'pushMsg') { - for (let i = 0; i < onPushMessageCallbacks.length; i++) { - const msg = { + onPushMessageCallbacks.forEach((callback) => { + callback({ type: 'receive', data: normalizePushMessage(args.message), - }; - onPushMessageCallbacks[i](msg); - if (msg.stopped) { - // 消息被中断,比如页面直达的 push 信息 - break; - } - } + }); + }); } else if (args.type === 'click') { onPushMessageCallbacks.forEach((callback) => {