share.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. /**
  2. * 对象转换为url参数
  3. * @param {object} params 当前页面的参数对象 {}
  4. *
  5. * 使用方法
  6. import { convertUrlParams } from '@/utils/share'
  7. let params = convertUrlParams({ id: 1, name: '张三', age: 18 })
  8. uni.navigateTo({
  9. url: `/xxx/xxx/xxxx${params}`
  10. })
  11. */
  12. export const convertUrlParams = (params = {}) => {
  13. let urlParamsStr = '?'
  14. for (const key in params) {
  15. if (Object.prototype.hasOwnProperty.call(params, key)) urlParamsStr += `&${key}=${params[key]}`
  16. }
  17. return urlParamsStr
  18. }
  19. /**
  20. * url转换为对象参数
  21. * @param {object} params 当前页面的参数 ''
  22. *
  23. * 使用方法
  24. import { convertObjParams } from '@/utils/share'
  25. let params = convertObjParams('id=1&name=张三&age=18')
  26. */
  27. export const convertObjParams = (params = '') => {
  28. let obj = {}
  29. params.split('&').forEach(item => {
  30. let [key, value] = item.split('=')
  31. obj[key] = value
  32. })
  33. return obj
  34. }
  35. /**
  36. * 分享函数
  37. * setShareMsg({shareTitle,shareImg,sharePath,shareParams}) 设置分享信息
  38. * @param {string} shareTitle 分享标题
  39. * @param {string} shareImg 分享图片
  40. * @param {string} sharePath 分享链接
  41. * @param {object} shareParams 分享参数
  42. * 使用方法
  43. import { setShareMsg } from '@/utils/share'
  44. onShareAppMessage(() => {
  45. return setShareMsg({
  46. shareTitle: '分享标题',
  47. shareImg: 'https://www.baidu.com/img/flexible/logo/pc/result.png',
  48. sharePath: '/pages/card/card',
  49. shareParams: {
  50. id: 1,
  51. name: '张三',
  52. age: 18
  53. }
  54. })
  55. })
  56. * 获取分享参数
  57. onLoad((option) => {
  58. const { id, name, age } = (Object.keys(option).length ? option : false) || getApp().globalData.shareParams || {}
  59. console.log(id, name, age)
  60. })
  61. */
  62. export const setShareMsg = ({ shareTitle = '我分享了一个小程序', shareImg = '', sharePath = '', shareParams = {} }) => {
  63. const params = convertUrlParams({ sharePath, ...shareParams })
  64. return {
  65. title: shareTitle,
  66. imageUrl: shareImg,
  67. path: `/pages/index/welcome${params}`
  68. }
  69. }