App.vue 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. <script>
  2. export default {
  3. data(){
  4. return{
  5. lastTapTime: 0, // 记录上次点击的时间
  6. }
  7. },
  8. onLaunch: function() {
  9. console.log('App Launch');
  10. //#ifdef APP-PLUS
  11. var info = plus.push.getClientInfo();
  12. console.log(JSON.stringify(info));
  13. uni.setStorageSync('clientid', info.clientid); //记住cid
  14. //收到透传消息
  15. //只有APP在线时,才会触发receive事件,透传消息不会触发系统消息,需要创建本地消息
  16. plus.push.addEventListener("receive", function(msg) {
  17. console.log("(receive):" + JSON.stringify(msg));
  18. // 播报 start
  19. // const innerAudioContext = uni.createInnerAudioContext();
  20. // innerAudioContext.autoplay = true;
  21. // innerAudioContext.src = 'http://fanyi.baidu.com/gettts?lan=zh&text=' + msg.content + '&spd=5&source=web';
  22. // 播报 end
  23. // if (app.isIOS()) { //如果是IOS
  24. // var payload = msg.payload;
  25. // //【APP离线】收到消息,但没有提醒(发生在一次收到多个离线消息时,只有一个有提醒,但其他的没有提醒)
  26. // //【APP在线】收到消息,不会触发系统消息,需要创建本地消息,但不能重复创建。必须加msg.type验证去除死循环
  27. // if (msg.aps == null && msg.type == "receive") {
  28. // var messageTitle = payload.messageTitle;
  29. // var messageContent = payload.messageContent;
  30. // //创建本地消息,发送的本地消息也会被receive方法接收到,但没有type属性,且aps是null
  31. // plus.push.createMessage(messageContent, JSON.stringify(payload), {
  32. // title: messageTitle
  33. // });
  34. // }
  35. // }
  36. // if (app.isAndroid()) { //如果是Android,当APP在线时,收到透传消息不会进入系统消息,需要发送本地提醒。
  37. // var payload = JSON.parse(msg.payload);
  38. // var messageTitle = payload.messageTitle;
  39. // var messageContent = payload.messageContent;
  40. // plus.push.createMessage(messageContent, msg.payload, {
  41. // title: messageTitle
  42. // });
  43. // }
  44. }, false);
  45. //消息点击事件
  46. //【APP在线】,收到透传消息通过,不会提醒至通知栏目,需要发送本地消息,再进行点击触发的点击事件。
  47. //【APP离线】,收到离线透传消息,必须通过Java后台的Intent字符串携带payload,且符合格式才能触发click事件,格式不符合不会触发。
  48. plus.push.addEventListener("click", function(msg) {
  49. console.log("(click):" + JSON.stringify(msg));
  50. // if (app.isIOS()) { //如果是IOS
  51. // var payload;
  52. // if (msg.type == "click") { //APP离线点击包含click属性,这时payload是JSON对象
  53. // payload = msg.payload;
  54. // } else { //APP在线,收到消息不会包含type属性,这时的payload是JSON字符串,需要转为JSON对象
  55. // payload = JSON.parse(msg.payload);
  56. // }
  57. // if (payload != null || payload != undefined) {
  58. // var messageType = payload.messageType;
  59. // messageClick(messageType, payload);
  60. // }
  61. // }
  62. // if (app.isAndroid()) { //如果是Android,收到playload均是是JSON字符串,需要转为JSON对象
  63. // var payload = JSON.parse(msg.payload);
  64. // if (payload != null || payload != undefined) {
  65. // var messageType = payload.messageType;
  66. // messageClick(messageType, payload);
  67. // }
  68. // }
  69. }, false);
  70. //#endif
  71. },
  72. onShow: function() {
  73. console.log('App Show');
  74. let that = this
  75. // #ifdef APP-PLUS
  76. plus.key.addEventListener('backbutton', that.handleBackButton)
  77. // #endif
  78. // uni.redirectTo({
  79. // url: "../mypage/mypage",
  80. // });
  81. },
  82. onHide: function() {
  83. console.log('App Hide');
  84. let that = this
  85. // #ifdef APP-PLUS
  86. plus.key.removeEventListener('backbutton', that.handleBackButton)
  87. // #endif
  88. // uni.closeSocket();
  89. // uni.onSocketClose(function(res) {
  90. // console.log('WebSocket 已关闭!');
  91. // });
  92. },
  93. methods: {
  94. handleBackButton() {
  95. let currentTime = new Date().getTime(); // 获取当前点击时间
  96. if (currentTime - this.lastTapTime < 500) { // 如果两次点击间隔在500毫秒以内,认为是双击
  97. // 双击事件处理逻辑
  98. console.log('双击了返回键');
  99. // 你的双击事件处理代码
  100. plus.runtime.quit(); // 示例:用户双击返回键时,执行页面返回操作
  101. }
  102. this.lastTapTime = currentTime; // 更新最后点击时间
  103. }
  104. }
  105. }
  106. </script>
  107. <style>
  108. @import url("./static/font/iconfont.css");
  109. @import url("/node_modules/spinkit/spinkit.css");
  110. /*每个页面公共css */
  111. html {
  112. width: 100%;
  113. height: 100%;
  114. background: #f9fafb;
  115. --sk-size: 20rpx !important;
  116. --sk-color: #49b856 !important;
  117. }
  118. body {
  119. height: 100%;
  120. box-sizing: border-box;
  121. /* padding-top: 96rpx; */
  122. font-family: "Helvetica Neue";
  123. -webkit-font-smoothing: antialiased;
  124. -moz-osx-font-smoothing: grayscale;
  125. }
  126. #app {
  127. margin: 0px;
  128. padding: 0px;
  129. text-align: center;
  130. font-size: 14px;
  131. color: rgb(51, 51, 51);
  132. width: 100%;
  133. height: 100%;
  134. }
  135. /* 按钮点击态 */
  136. .seimin-btn-hover {
  137. box-shadow: 0px 0px 8px rgba(0, 0, 0, .1) inset !important;
  138. }
  139. .uni-picker-action-confirm {
  140. color: #49b856 !important;
  141. }
  142. .selected-item-active{
  143. border-color: #49b856 !important;;
  144. }
  145. .footerPadding {
  146. padding-bottom: 50rpx !important;
  147. }
  148. .footerOtherMargin {
  149. padding-bottom: 174rpx !important;
  150. }
  151. .red {
  152. color: red !important;
  153. }
  154. .fweight {
  155. font-weight: bold !important;
  156. }
  157. .f30 {
  158. font-size: 30rpx !important;
  159. }
  160. .mt8{
  161. margin-top: 16rpx !important;
  162. }
  163. .check{
  164. border-color:#49b856 !important;
  165. }
  166. </style>