App - 副本.vue 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256
  1. <!-- com.encryptedIM.im com.aiim.app.demo 6OQrPSweuBcdbhg -->
  2. <script setup lang="ts">
  3. import {onHide, onLaunch, onShow} from "@dcloudio/uni-app";
  4. import {getCurrentInstance} from "vue";
  5. import {useSysStore} from "@/store/sysStore";
  6. import Auth from "@/api/Auth";
  7. import {useWsStore} from "@/store/WsStore";
  8. //import app_upgrade from '@/uni_modules/app-upgrade/js_sdk/index.js'
  9. //import packageJson from '../package.json'
  10. //import update from '../update.json'
  11. //import dbApi from '@/api/DBApi';
  12. import dbactApi from '@/api/DBactApi';
  13. import {useUserStore} from "@/store/userStore";
  14. import UserApi from '@/api/UserApi';
  15. var jpushModule = uni.requireNativePlugin("JG-JPush")
  16. const wsStore = useWsStore();
  17. onLaunch(() => {
  18. plus.runtime.setBadgeNumber(0);
  19. plus.screen.lockOrientation('portrait-primary');
  20. setInterval(() => {
  21. uni.getNetworkType({
  22. success: function (res) {
  23. const networkType = res.networkType;
  24. if (networkType === 'none') {
  25. //console.log('networkType N')
  26. if(Auth.getToken()!=''){
  27. //Auth.logout();//无法连接网络,跳转登录页面
  28. }
  29. } else {
  30. // 有网络
  31. //console.log('networkType Y')
  32. }
  33. }
  34. });
  35. }, 5000);
  36. uni.getSystemInfo({
  37. success: function (e) {
  38. //@ts-ignore
  39. const {proxy} = getCurrentInstance();
  40. // #ifndef MP
  41. proxy.statusBar = e.statusBarHeight;
  42. if (e.platform == 'android') {
  43. //@ts-ignore
  44. proxy.customBar = e.statusBarHeight + 50;
  45. } else {
  46. //@ts-ignore
  47. proxy.customBar = e.statusBarHeight + 45;
  48. }
  49. ;
  50. // #endif
  51. // #ifdef MP-WEIXIN
  52. proxy.statusBar = e.statusBarHeight;
  53. //@ts-ignore
  54. let custom = wx.getMenuButtonBoundingClientRect();
  55. proxy.Custom = custom;
  56. //@ts-ignore
  57. proxy.customBar = custom.bottom + custom.top - e.statusBarHeight;
  58. // #endif
  59. // #ifdef MP-ALIPAY
  60. proxy.statusBar = e.statusBarHeight;
  61. //@ts-ignore
  62. proxy.customBar = e.statusBarHeight + e.titleBarHeight;
  63. // #endif
  64. // #ifdef APP-PLUS
  65. //自动更新 安卓
  66. if (e.platform === 'android') {
  67. // app_upgrade(async () => {
  68. // //查询是否更新
  69. // const {statusCode, data} = await uni.request({
  70. // url: update.checkUrl,
  71. // method: 'GET'
  72. // })
  73. // const version = packageJson.version
  74. // if (statusCode === 200) {
  75. // return {
  76. // changelog: data.changelog,
  77. // status: data.android > version ? 1 : 0, // 0 无新版本 | 1 有新版本
  78. // path: data.url // 新apk地址
  79. // }
  80. // }
  81. // })
  82. }
  83. // #endif
  84. }
  85. })
  86. //极光推送
  87. console.log('App Launch')
  88. var platformType='a';
  89. Auth.setregisterID('');
  90. if(uni.getSystemInfoSync().platform == "ios"){
  91. platformType='i';
  92. // 请求定位权限
  93. let locationServicesEnabled = jpushModule.locationServicesEnabled()
  94. let locationAuthorizationStatus = jpushModule.getLocationAuthorizationStatus()
  95. console.log('locationAuthorizationStatus',locationAuthorizationStatus)
  96. if (locationServicesEnabled == true && locationAuthorizationStatus < 3) {
  97. jpushModule.requestLocationAuthorization((result)=>{
  98. console.log('定位权限',result.status)
  99. })
  100. }
  101. jpushModule.requestNotificationAuthorization((result)=>{
  102. let status = result.status
  103. console.log('status',status)
  104. if (status < 2) {
  105. uni.showToast({
  106. icon: 'none',
  107. title: '您还没有打开通知权限',
  108. duration: 3000
  109. })
  110. }
  111. })
  112. }
  113. jpushModule.initJPushService();
  114. jpushModule.setLoggerEnable(true);
  115. jpushModule.addConnectEventListener(result=>{
  116. console.log('result',result);
  117. jpushModule.getRegistrationID(resultid=>{
  118. let registerID = resultid.registerID;
  119. console.log('registerID',registerID);
  120. Auth.setregisterID(registerID);
  121. if(Auth.getToken()&&Auth.getToken()!=''){
  122. const currentUser = useUserStore().getUser();
  123. currentUser.registrationId=registerID;
  124. var data={
  125. "userId": currentUser?.id,
  126. "registrationId":registerID,
  127. "platformType":platformType//a---(android),i---(ios)
  128. }
  129. UserApi.setUser(JSON.stringify(data)).then((res)=>{
  130. console.log('setuser',res);
  131. });
  132. }
  133. })
  134. let connectEnable = result.connectEnable
  135. uni.$emit('connectStatusChange',connectEnable)
  136. });
  137. console.log('22222');
  138. jpushModule.addNotificationListener(result=>{
  139. let notificationEventType = result.notificationEventType
  140. let messageID = result.messageID
  141. let title = result.title
  142. let content = result.content
  143. let extras = result.extras
  144. console.log('111',result);
  145. // uni.showToast({
  146. // icon: 'none',
  147. // title: JSON.stringify(result),
  148. // duration: 3000
  149. // })
  150. });
  151. jpushModule.addCustomMessageListener(result=>{
  152. let type = result.type
  153. let messageType = result.messageType
  154. let content = result.content
  155. console.log('222',JSON.stringify(result))
  156. uni.showToast({
  157. icon: 'none',
  158. title: JSON.stringify(result),
  159. duration: 3000
  160. })
  161. })
  162. jpushModule.addLocalNotificationListener(result=>{
  163. let messageID = result.messageID
  164. let title = result.title
  165. let content = result.content
  166. let extras = result.extras
  167. console.log('333',JSON.stringify(result))
  168. uni.showToast({
  169. icon: 'none',
  170. title: JSON.stringify(result),
  171. duration: 3000
  172. })
  173. })
  174. //jpushModule.setIsAllowedInMessagePop(true)
  175. // jpushModule.pullInMessage(result=>{
  176. // let code = result.code
  177. // console.log(code)
  178. // })
  179. jpushModule.addInMessageListener(result=>{
  180. let eventType = result.eventType
  181. let messageType = result.messageType
  182. let content = result.content
  183. console.log('inMessageListener',eventType,messageType,content)
  184. console.log(JSON.stringify(result))
  185. // uni.showToast({
  186. // icon: 'none',
  187. // title: JSON.stringify(result),
  188. // duration: 3000
  189. // })
  190. })
  191. });
  192. onShow(() => {
  193. if (Auth.getToken()) {
  194. if (wsStore.wsRequest.socket?.readyState === 1) {
  195. wsStore.checkStatus()
  196. } else {
  197. wsStore.close(true)
  198. wsStore.init()
  199. }
  200. }
  201. if(dbactApi.DBisOpen()){
  202. console.log('dbactApi.DBisOpen')
  203. if (Auth.getToken()){
  204. dbactApi.createMSGtable();
  205. }
  206. }else{
  207. dbactApi.openDb().then((res)=>{
  208. console.log('-----',res);
  209. if (Auth.getToken()){
  210. dbactApi.createMSGtable();
  211. }
  212. });
  213. }
  214. // if(dbApi.DBisOpen()){
  215. // dbApi.createMSGtable();
  216. // }else{
  217. // dbApi.openDb();
  218. // dbApi.createMSGtable();
  219. // }
  220. useSysStore().setShow(true)
  221. });
  222. onHide(() => {
  223. console.log('onHide')
  224. useSysStore().setShow(false)
  225. dbactApi.closeDB();
  226. });
  227. </script>
  228. <style>
  229. @import "colorui/main.css";
  230. @import "colorui/icon.css";
  231. @import "static/css/font.css";
  232. page {
  233. height: 100%;
  234. }
  235. .tab-bar-mar {
  236. margin-bottom: 140upx
  237. }
  238. </style>