useExitApp.js 905 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import {ref} from "vue";
  2. import {
  3. onBackPress
  4. } from '@dcloudio/uni-app';
  5. export function useExitApp() {
  6. const canExitApp = ref(false);
  7. onBackPress((options) => {
  8. if (options.from === 'backbutton') {
  9. // 返回键处理
  10. return handleHarmonyOSBack()
  11. }
  12. return false
  13. })
  14. function handleHarmonyOSBack() {
  15. // 双击返回键退出应用
  16. if (!canExitApp.value) {
  17. canExitApp.value = true
  18. // 显示提示
  19. uni.showToast({
  20. title: '再按一次退出应用',
  21. icon: 'none',
  22. duration: 2000
  23. })
  24. // 2秒后重置状态
  25. setTimeout(() => {
  26. canExitApp.value = false
  27. }, 2000)
  28. return true // 拦截返回事件
  29. } else {
  30. // 退出应用
  31. exitApp()
  32. return true
  33. }
  34. }
  35. function exitApp() {
  36. // #ifdef APP-PLUS || APP-PLUS-NVUE
  37. // 系统退出应用
  38. plus.runtime.quit()
  39. // #endif
  40. }
  41. }