route_util.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. module.exports = {
  2. goBackHomePage: goBackHomePage,
  3. goBackRoute: goBackRoute,
  4. jump: jump,
  5. jumpParam: jumpParam,
  6. goBack: goBack,
  7. redirectTo: redirectTo,
  8. }
  9. ///跳转,不摧毁界面
  10. async function jump(url) {
  11. await wx.navigateTo({
  12. url: url,
  13. });
  14. };
  15. ///跳转带参,不摧毁界面
  16. async function jumpParam(url, param) {
  17. if (param) {
  18. await wx.navigateTo({
  19. url: url + "?param=" + param,
  20. });
  21. } else {
  22. await jump(url);
  23. }
  24. };
  25. //跳转,并且摧毁当前界面
  26. async function redirectTo(url) {
  27. await wx.redirectTo({
  28. url: url,
  29. });
  30. };
  31. //返回页面个数
  32. async function goBack(pages) {
  33. if (pages == null) pages == 1;
  34. await wx.navigateBack({
  35. delta: pages,
  36. });
  37. };
  38. ///返回到首页,不关闭当前界面
  39. async function goBackHomePage() {
  40. const route_constant = require('./route_constant.js');
  41. await goBackRoute(route_constant.indexRoot);
  42. };
  43. ///返回到某个界面,不替换当前界面
  44. ///route:pages/index/index
  45. async function goBackRoute(route) {
  46. const pages = getCurrentPages(); // 获取当前页面栈
  47. const pageCount = pages.length; // 页面栈中的页面数量
  48. var pageNuble = 0;
  49. for (var i = pageCount - 1; i > -1; i--) {
  50. if (pages[i].route != route) {
  51. pageNuble++;
  52. } else {
  53. break;
  54. }
  55. }
  56. if (pageNuble > 0) {
  57. await goBack(pageNuble);
  58. }
  59. };