diff --git a/packages/vue-cli-plugin-uni/packages/uni-push/dist/uni-push.es.js b/packages/vue-cli-plugin-uni/packages/uni-push/dist/uni-push.es.js index e0f491cb0829cb8f83e2ce29852943e6a5c45353..3e81464982f47eb13259948bd6f965c44bcfffee 100644 --- a/packages/vue-cli-plugin-uni/packages/uni-push/dist/uni-push.es.js +++ b/packages/vue-cli-plugin-uni/packages/uni-push/dist/uni-push.es.js @@ -100,6 +100,26 @@ e?.onClose(t); var GtPush = /*@__PURE__*/getDefaultExportFromCjs(gtpushMin); +function initPushNotification() { + // 仅 App 端 + if (typeof plus !== 'undefined' && plus.push) { + plus.push.addEventListener('click', (result) => { + // @ts-expect-error + uni.invokePushCallback({ + type: 'click', + message: result, + }); + }); + uni.onPushMessage((res) => { + if (res.type === 'receive' && res.data && res.data.force_notification) { + // 创建通知栏 + uni.createPushMessage(res.data); + res.stopped = true; + } + }); + } +} + // if (process.env.UNI_PUSH_DEBUG) { // GtPush.setDebugMode(true) // } @@ -119,6 +139,7 @@ if (!appid) { }); } else { + initPushNotification(); GtPush.init({ appid, onError: (res) => { diff --git a/src/core/service/api/plugin/push.js b/src/core/service/api/plugin/push.js index 133ad49e4f51a207c76a4eb081ee40fbab542c4f..617ab426873ac81e710782ad481abcbbf82fcdb3 100644 --- a/src/core/service/api/plugin/push.js +++ b/src/core/service/api/plugin/push.js @@ -27,12 +27,18 @@ export function invokePushCallback ( cidErrMsg = args.errMsg invokeGetPushCidCallbacks(cid, args.errMsg) } else if (args.type === 'pushMsg') { - onPushMessageCallbacks.forEach((callback) => { - callback({ - type: 'receive', - data: normalizePushMessage(args.message) - }) - }) + const message = { + type: 'receive', + data: normalizePushMessage(args.message) + } + for (let i = 0; i < onPushMessageCallbacks.length; i++) { + const callback = onPushMessageCallbacks[i] + callback(message) + // 该消息已被阻止 + if (message.stopped) { + break + } + } } else if (args.type === 'click') { onPushMessageCallbacks.forEach((callback) => { callback({ diff --git a/src/platforms/h5/helpers/get-jsonp.js b/src/platforms/h5/helpers/get-jsonp.js index 58eab9947856b983ac1af50c314e4a06090bfeee..1ca99b678f3a2748bb393cc4ed73142d33ffe760 100644 --- a/src/platforms/h5/helpers/get-jsonp.js +++ b/src/platforms/h5/helpers/get-jsonp.js @@ -8,7 +8,7 @@ export function getJSONP (url, options, success, error) { var js = document.createElement('script') var callbackKey = options.callback || 'callback' - var callbackName = '__callback' + Date.now() + var callbackName = '__callback' + Date.now() + Math.random().toString().slice(2) var timeout = options.timeout || 30000 var timing function end () {