safeArea.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import { ref } from 'vue';
  2. export const statusBarHeight = ref(20);
  3. export const safeAreaBottom = ref(0);
  4. export const safeAreaTop = ref(20);
  5. export const useSafeArea = () => {
  6. const initSafeArea = () => {
  7. try {
  8. const systemInfo = uni.getSystemInfoSync();
  9. statusBarHeight.value = systemInfo.statusBarHeight || 20;
  10. const safeAreaInsets = systemInfo.safeAreaInsets || {};
  11. safeAreaTop.value = safeAreaInsets.top || statusBarHeight.value;
  12. safeAreaBottom.value = safeAreaInsets.bottom || 0;
  13. } catch (e) {
  14. statusBarHeight.value = 20;
  15. safeAreaBottom.value = 0;
  16. safeAreaTop.value = 20;
  17. }
  18. };
  19. return {
  20. statusBarHeight,
  21. safeAreaBottom,
  22. safeAreaTop,
  23. initSafeArea
  24. };
  25. };
  26. export const initSafeArea = () => {
  27. try {
  28. const systemInfo = uni.getSystemInfoSync();
  29. statusBarHeight.value = systemInfo.statusBarHeight || 20;
  30. const safeAreaInsets = systemInfo.safeAreaInsets || {};
  31. safeAreaTop.value = safeAreaInsets.top || statusBarHeight.value;
  32. safeAreaBottom.value = safeAreaInsets.bottom || 0;
  33. } catch (e) {
  34. statusBarHeight.value = 20;
  35. safeAreaBottom.value = 0;
  36. safeAreaTop.value = 20;
  37. }
  38. };