useExitApp.js 914 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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. }