pc.vue 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <template>
  2. <view class="pc-page">
  3. <web-view :src="url" @message="handleGetMessage"/>
  4. </view>
  5. </template>
  6. <script>
  7. import {pcBaseUrl} from '../utils/config'
  8. export default {
  9. data () {
  10. return {
  11. url:'',
  12. msgObj:{},//{path:小程序页面地址,params:页面参数,title:分享的标题}
  13. }
  14. },
  15. onLoad(options) {
  16. console.log('pc页面onload数据',options);
  17. let paramsObj={
  18. ...options,
  19. token:this.$store.state.user.token,
  20. timestamp:new Date().getTime(),//防止缓存
  21. }
  22. console.log('要处理的参数',paramsObj);
  23. let paramsObjStr=''
  24. for (const key in paramsObj) {
  25. if(!paramsObjStr){
  26. paramsObjStr=`${key}=${paramsObj[key]}`
  27. }else{
  28. paramsObjStr=`${paramsObjStr}&${key}=${paramsObj[key]}`
  29. }
  30. }
  31. console.log('拼接字符串:',paramsObjStr);
  32. this.url=`${pcBaseUrl}${options.h5Url||'/'}?${paramsObjStr}`
  33. },
  34. onShow() {
  35. uni.hideHomeButton({
  36. fail:(e)=>{
  37. console.log(e);
  38. }
  39. })
  40. },
  41. onShareAppMessage({webViewUrl}) {
  42. // console.log(webViewUrl);
  43. let paramsStr=''
  44. for(const key in this.msgObj.params){
  45. if(!paramsStr){
  46. paramsStr=`${key}=${this.msgObj.params[key]}`
  47. }else{
  48. paramsStr=`${paramsStr}&${key}=${this.msgObj.params[key]}`
  49. }
  50. }
  51. return {
  52. title: this.msgObj.title||'弘则研究',
  53. path: `${this.msgObj.path}?${paramsStr}`,
  54. imageUrl:this.msgObj.shareImg||''
  55. }
  56. },
  57. methods: {
  58. // 获取到用户点击转发时从h5页面传来的参数
  59. handleGetMessage(e){
  60. const data=e.detail.data[e.detail.data.length-1]
  61. console.log('h5传来的数据',data);
  62. this.msgObj=data
  63. }
  64. }
  65. }
  66. </script>