bootstrap.ts 771 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import { watch } from "vue";
  2. import { scroller } from "./scroller";
  3. import { initTheme, setH5 } from "./theme";
  4. import { locale } from "./locale";
  5. import { updateTitle } from "./page";
  6. export function coolPlugin(app: VueApp) {
  7. app.mixin({
  8. onPageScroll(e) {
  9. scroller.emit(e.scrollTop);
  10. },
  11. onShow() {
  12. // 更新标题
  13. updateTitle();
  14. // #ifdef H5
  15. setTimeout(() => {
  16. setH5();
  17. }, 0);
  18. // #endif
  19. // 触发 onShow 事件
  20. uni.$emit("page.onShow");
  21. },
  22. onLoad() {
  23. // 监听语言切换,更新标题
  24. watch(locale, () => {
  25. updateTitle();
  26. });
  27. // 触发 onLoad 事件
  28. uni.$emit("page.onLoad");
  29. },
  30. onHide() {
  31. // 触发 onHide 事件
  32. uni.$emit("page.onHide");
  33. }
  34. });
  35. // 初始化应用主题
  36. initTheme();
  37. }