You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.3 KiB
65 lines
1.3 KiB
import {
|
|
publish
|
|
} from '../../bridge'
|
|
|
|
let onPushing
|
|
|
|
let isListening = false
|
|
|
|
let unsubscribe = false
|
|
|
|
export function subscribePush (params, callbackId) {
|
|
const clientInfo = plus.push.getClientInfo()
|
|
if (clientInfo) {
|
|
if (!isListening) {
|
|
isListening = true
|
|
plus.push.addEventListener('receive', msg => {
|
|
if (onPushing && !unsubscribe) {
|
|
publish('onPushMessage', {
|
|
messageId: msg.__UUID__,
|
|
data: msg.payload,
|
|
errMsg: 'onPush:ok'
|
|
})
|
|
}
|
|
})
|
|
}
|
|
unsubscribe = false
|
|
clientInfo.errMsg = 'subscribePush:ok'
|
|
return clientInfo
|
|
} else {
|
|
return {
|
|
errMsg: 'subscribePush:fail:请确保当前运行环境已包含 push 模块'
|
|
}
|
|
}
|
|
}
|
|
|
|
export function unsubscribePush (params) {
|
|
unsubscribe = true
|
|
return {
|
|
errMsg: 'unsubscribePush:ok'
|
|
}
|
|
}
|
|
|
|
export function onPush () {
|
|
if (!isListening) {
|
|
return {
|
|
errMsg: 'onPush:fail:请先调用 uni.subscribePush'
|
|
}
|
|
}
|
|
if (plus.push.getClientInfo()) {
|
|
onPushing = true
|
|
return {
|
|
errMsg: 'onPush:ok'
|
|
}
|
|
}
|
|
return {
|
|
errMsg: 'onPush:fail:请确保当前运行环境已包含 push 模块'
|
|
}
|
|
}
|
|
|
|
export function offPush (params) {
|
|
onPushing = false
|
|
return {
|
|
errMsg: 'offPush:ok'
|
|
}
|
|
}
|
|
|