个人随笔
目录
Uniapp小程序web-view中H5修改小程序分享链接的解决方案
2024-11-22 17:32:36

我们在小程序中打开H5页面,我们可能要修改分享链接,比如如果我们的是一个分享助力的活动,需要带上分享者ID,如果是商城的话可能需要带上营销员分享ID.也就产生了在H5修改小程序分享链接的需求,怎么实现呢?

其实很简单,我们只需要在H5通知小程序然后小程序再修改分享链接分享标题就可以了。

1、小程序打开H5页面

  1. <web-view v-if="flag" :src="url" @message="handleMessage"></web-view>

这里关键点就是@message方法,然后我们在小程序页面监听该事件,该方法只会在用户点击分享或者返回才会触发。

  1. methods: {
  2. handleMessage:function(evt) {
  3. console.log("evt.detail",evt.detail)
  4. this.shareTitle = evt.detail.data[0].shareTitle ;
  5. this.shareUrl = evt.detail.data[0].shareUrl;
  6. }
  7. }

然后分享就可以用了

  1. onLoad(params) {
  2. console.log("params",params)
  3. var decodedURL = decodeURIComponent(params.url);
  4. this.url = decodedURL;
  5. console.log("url",this.url)
  6. //将当前链接设置到缓存中
  7. this.flag = true;
  8. uni.showShareMenu()
  9. },
  10. // 分享到朋友圈(不生效)
  11. onShareTimeline() {
  12. return {
  13. title: this.shareTitle,
  14. path: this.shareUrl
  15. }
  16. },
  17. onShareAppMessage(res) {
  18. return {
  19. title: this.shareTitle,
  20. path: this.shareUrl
  21. }
  22. }

注:上面的分享到朋友圈没有意义,web-view页面不支持分享到朋友圈

2、H5页面

  1. //判断是小程序环境,执行下面逻辑即可
  2. wx.miniProgram.postMessage({
  3. data: {
  4. shareTitle: "分享标题自定义",
  5. shareUrl: "/pages/h5/h5?url=https%3A%2F%2Fwww.baidu.com"
  6. }
  7. })

注,这里需要引入js

  1. <script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>

完成。

3、小程序打开H5的代码参考

  1. <template>
  2. <view class="all">
  3. <web-view v-if="flag" :src="url" @message="handleMessage"></web-view>
  4. </view>
  5. </template>
  6. <script>
  7. export default {
  8. components: {
  9. },
  10. data() {
  11. return {
  12. flag: false,
  13. url:'',
  14. shareTitle:'',
  15. shareUrl:'',
  16. }
  17. },
  18. onLoad(params) {
  19. console.log("params",params)
  20. var decodedURL = decodeURIComponent(params.url);
  21. this.url = decodedURL;
  22. console.log("url",this.url)
  23. //将当前链接设置到缓存中
  24. this.flag = true;
  25. uni.showShareMenu()
  26. },
  27. onShow() {
  28. if(wx.hideHomeButton){
  29. wx.hideHomeButton();
  30. }
  31. },
  32. onReachBottom() {
  33. },
  34. // 分享到朋友圈
  35. onShareTimeline() {
  36. return {
  37. title: this.shareTitle,
  38. path: this.shareUrl
  39. }
  40. },
  41. onShareAppMessage(res) {
  42. return {
  43. title: this.shareTitle,
  44. path: this.shareUrl
  45. }
  46. },
  47. methods: {
  48. searchOrderByCarNum: function() {
  49. },
  50. //这里每次分享都会有一条新的记录,所以应该取最后一条记录
  51. handleMessage:function(evt) {
  52. console.log("evt.detail",evt.detail)
  53. this.shareTitle = evt.detail.data[0].shareTitle ;
  54. this.shareUrl = evt.detail.data[0].shareUrl;
  55. },
  56. }
  57. }
  58. </script>
  59. <style scoped lang="scss">
  60. </style>
 10

啊!这个可能是世界上最丑的留言输入框功能~


当然,也是最丑的留言列表

有疑问发邮件到 : suibibk@qq.com 侵权立删
Copyright : 个人随笔   备案号 : 粤ICP备18099399号-2