App.vue 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. <script>
  2. const jpushModule = uni.requireNativePlugin('JG-JPush')
  3. export default {
  4. onLaunch: function() {
  5. console.log('App Launch')
  6. if (uni.getSystemInfoSync().platform == "ios") {
  7. // 请求定位权限
  8. let locationServicesEnabled = jpushModule.locationServicesEnabled()
  9. let locationAuthorizationStatus = jpushModule.getLocationAuthorizationStatus()
  10. console.log('locationAuthorizationStatus', locationAuthorizationStatus)
  11. if (locationServicesEnabled == true && locationAuthorizationStatus < 3) {
  12. jpushModule.requestLocationAuthorization((result) => {
  13. console.log('定位权限', result.status)
  14. })
  15. }
  16. jpushModule.requestNotificationAuthorization((result) => {
  17. let status = result.status
  18. if (status < 2) {
  19. uni.showToast({
  20. icon: 'none',
  21. title: '您还没有打开通知权限',
  22. duration: 3000
  23. })
  24. }
  25. })
  26. }
  27. // 初始化sdk
  28. jpushModule.initJPushService();
  29. // 开启 debug 模式,默认是关闭
  30. jpushModule.setLoggerEnable(true);
  31. // 连接状态回调 true已连接 false未连接
  32. jpushModule.addConnectEventListener(result => {
  33. console.log(result)
  34. let connectEnable = result.connectEnable
  35. uni.$emit('connectStatusChange', connectEnable)
  36. });
  37. // 取得应用程序对应的 RegistrationID。 只有当应用程序成功注册到 JPush 的服务器时才返回对应的值,否则返回空字符串
  38. // jpushModule.getRegistrationID(result => {
  39. // console.log(result, "注册ID.....")
  40. // // if (result && result.registerID) {
  41. // // this.globalData.text = result.registerID
  42. // // uni.$emit('getRegisterID', result.registerID)
  43. // // }
  44. // this.globalData.text = result.registerID
  45. // uni.$emit('getRegisterID', result.registerID)
  46. // })
  47. // 通知事件回调
  48. jpushModule.addNotificationListener(result => {
  49. console.log(result)
  50. if (result.notificationEventType == "notificationOpened") {
  51. //点击窗口通知栏推送的消息 跳转指定页面
  52. uni.navigateTo({
  53. url: '/pages/home/warningCenter/warningCenter',
  54. complete(res) {
  55. console.log(res);
  56. }
  57. })
  58. }
  59. });
  60. // 自定义消息事件回调
  61. jpushModule.addCustomMessageListener(result => {
  62. let type = result.type
  63. let messageType = result.messageType
  64. let content = result.content
  65. uni.showToast({
  66. icon: 'none',
  67. title: JSON.stringify(result),
  68. duration: 3000
  69. })
  70. })
  71. // 本地通知事件回调
  72. jpushModule.addLocalNotificationListener(result => {
  73. let messageID = result.messageID
  74. let title = result.title
  75. let content = result.content
  76. let extras = result.extras
  77. uni.showToast({
  78. icon: 'none',
  79. title: JSON.stringify(result),
  80. duration: 3000
  81. })
  82. })
  83. // 地理围栏事件回调
  84. jpushModule.addGeofenceListener(result => {
  85. let code = result.code
  86. let type = result.type
  87. let geofenceId = result.geofenceId
  88. let userInfo = result.userInfo
  89. uni.showToast({
  90. icon: 'none',
  91. title: '触发地理围栏',
  92. duration: 3000
  93. })
  94. })
  95. jpushModule.setIsAllowedInMessagePop(true)
  96. jpushModule.pullInMessage(result => {
  97. let code = result.code
  98. console.log(code)
  99. })
  100. // 应用内消息回调
  101. jpushModule.addInMessageListener(result => {
  102. let eventType = result.eventType
  103. let messageType = result.messageType
  104. let content = result.content
  105. console.log('inMessageListener', eventType, messageType, content)
  106. uni.showToast({
  107. icon: 'none',
  108. title: JSON.stringify(result),
  109. duration: 3000
  110. })
  111. })
  112. },
  113. onShow: function() {
  114. console.log('App Show')
  115. },
  116. onHide: function() {
  117. console.log('App Hide')
  118. }
  119. }
  120. </script>
  121. <style>
  122. /*每个页面公共css */
  123. </style>