'a'
mh-two-thousand-and-two
2024-04-12 44d2c92345cd156a59fc327b3060292a282d2893
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
import {
  invoke,
  publish
} from '../../bridge'
import {
  getAppAuthorizeSetting
} from '../device/get-app-authorize-setting'
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'
  }
}
 
export function createPushMessage (params, callbackId) {
  const setting = getAppAuthorizeSetting()
  if (setting.notificationAuthorized !== 'authorized') {
    return invoke(callbackId, {
      errMsg: 'createPushMessage:fail notificationAuthorized: ' + setting.notificationAuthorized
    })
  }
  const options = Object.assign({}, params)
  delete options.content
  delete options.payload
  plus.push.createMessage(params.content, params.payload, options)
  invoke(callbackId, {
    errMsg: 'createPushMessage:ok'
  })
}
 
let channelManager
 
export function getChannelManager () {
  return channelManager || (channelManager = plus.push.getChannelManager())
}