url.ts 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. /**
  2. * 解析 URL 查询参数
  3. * @param url URL 字符串
  4. * @returns { path: 路径, query: 参数对象 }
  5. */
  6. export function parseUrl(url: string): { path: string, query: Record<string, string> } {
  7. const [path, queryString] = url.split('?')
  8. const query: Record<string, string> = {}
  9. if (queryString) {
  10. queryString.split('&').forEach((param) => {
  11. const [key, value] = param.split('=')
  12. if (key) {
  13. query[key] = decodeURIComponent(value || '')
  14. }
  15. })
  16. }
  17. return { path, query }
  18. }
  19. /**
  20. * 设置 tabBar 页面跳转参数(通过 globalData 传递)
  21. * @param params 参数对象
  22. */
  23. export function setTabParams(params: Record<string, string>) {
  24. const app = getApp()
  25. if (app) {
  26. app.globalData = app.globalData || {}
  27. app.globalData.tabParams = params
  28. }
  29. }
  30. /**
  31. * 获取并清除 tabBar 页面跳转参数
  32. * @returns 参数对象,如果没有则返回 undefined
  33. */
  34. export function getAndClearTabParams(): Record<string, string> | undefined {
  35. const app = getApp()
  36. const tabParams = app?.globalData?.tabParams
  37. if (tabParams) {
  38. delete app.globalData.tabParams
  39. }
  40. return tabParams
  41. }