routeUtil.js 1.8 KB

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