小程序分享功能记录;小程序页面分享给好友携带参数

需求: 现有首页index和新增车辆页add-car。
正常操作流程是:从首页index点击按钮,会携带参数id跳转到新增车辆页add-car。
现在需求是用户A从首页index携带参数id跳转到新增车辆页add-car,在add-car页面点击分享按钮,将次页面发送给微信好友(被分享者B);
微信好友(被分享者B)点击分享卡片直接打开新增车辆页add-car,然后上传信息图片,点击下一步,传递参数id调用接口。完成操作。

问题:
1.因为是将新增车辆页add-car分享给用户打开新增车辆页add-car,微信好友(被分享者B)如何获取到用户A传递的参数id就是一个问题。
2.分享页面给微信好友(被分享者B),微信好友(被分享者B)点击时候报提示:开发版小程序已过期,请在开发者工具中重新扫码;(导致原因: 这是因为你在本地测试环境分享给好友,好友没有扫码,也没有开发权限。导致的好友打不开,部署生产环境是不会有这个问题的。)

注意点:
1.onShareAppMessage(res){} 方法,在此方法内是可以配置分享哪个页面和传递参数。
2.如果只是写了 <button open-type="share">分享</button> ,那么点击这个分享按钮是可以直接分享本页面的。但是就没办法触发分享别的页面,同时小程序的右上角的三个点点点…,点击打开 那个默认分享事件也是不可选的。

一、首页index代码:点击跳转按钮需要向新增车辆页add-car传递参数id

点击跳转的按钮事件:

    addCar(item) {
      // 这一步是为了存入客户id 然后在添加车辆页面 通过option 拿到customer_id使用
      uni.setStorageSync('customer_id', item.id);

      let obj = {
        item: {id: uni.getStorageSync('customer_id')},
        typeValue: "add",
        title: "新增车辆",
      };
      uni.navigateTo({
        url:
          "/pagesA/add-car?obj= " +
          encodeURIComponent(JSON.stringify(obj)),
      });
    },

二、新增车辆页面add-car: 此页面存在分享按钮,分享的也是此页面,好友打开后可以获取到对应的customer_id;
(同理如果想要携带分享者既用户A的相关信息,例如登录的信息cookie等,也可以通过分享页path字符串和getStorageSync配合传参以及获取参数)

html:只需写入此按钮

 <!-- 小程序分享 必须是 按钮+open-type="share"  可以通过 v-if="flagShare" 来控制是否显示按钮   -->
 
<button open-type="share">分享</button>

data:

flagShare: true,//在正常流程首页到新增车辆页是true 在分享卡片打开页是false

js部分:

  onLoad(option) {
    const obj = JSON.parse(decodeURIComponent(option.obj));
    this.picObj.customer_id = obj.item.id

	// if else是为了判断当前add-car页是通过首页index打开的 还是通过点击分享卡片打开的
	// 判断的依据就是路径path携带的参数(在index页是不传递share属性 但是分享页分享出去的 是传递了share属性对的)
    if (obj.item.share) {
      this.flagShare = false
      console.log('分享页打开');

      // 如果想要被分享者1 将此页面分享给另一个用户(被分享者2)同时传递id 那么就需要在被分享者1的缓存中存入id(既下方注释) 这样在被分享者1点击分享时候 onShareAppMessage才能获取到id进行传递
      // uni.setStorageSync('customer_id', this.picObj.customer_id);
    } else {
      this.flagShare = true
      console.log('默认首页操作进来');
    }
  },
  // 加了此方法,才能点击分享按钮或者右上角的分享三个小点 ...
  onShareAppMessage(res) {
    let obj = {
      item: { id: uni.getStorageSync('customer_id'), share: true },
      typeValue: "add",
      title: "新增车辆",
    };

    if (res.from === 'button') {// 来自页面内分享按钮
      console.log(res.target)
    }
    // 向分享页面传参 通过字符串路径即可(在对应的分享页的onLoad获取即可)
    return {
      title: '尊敬的车主,请您上传证件!',
      path: "/pagesA/add-car?obj= " +
        encodeURIComponent(JSON.stringify(obj)),
    }
  },

三、各页面

首页index:
在这里插入图片描述

新增车辆add-car页:

在这里插入图片描述

点击发送分享按钮:

在这里插入图片描述

好友点击分享卡片打开报: 开发版小程序已过期,请在开发者工具中重新扫码(问题截图,此问题不用管,生产环境部署好,直接看生产环境的不会有此问题)

在这里插入图片描述

线上 生产环境被分享者(用户B)点击分享卡片打开的页面:
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用以下代码实现微信小程序分享给微信好友: wx.showShareMenu({ withShareTicket: true }) wx.onShareAppMessage(function () { return { title: '分享标题', path: '/pages/index/index', imageUrl: 'https://example.com/share.png' } }) ### 回答2: 要实现微信小程序分享给微信好友,需要以下步骤: 1. 在小程序页面中添加分享按钮,可以使用`button`组件。 2. 给分享按钮绑定一个点击事件`bindtap`,点击时触发相应的分享逻辑。 3. 在点击事件中,调用微信提供的API`wx.showShareMenu`,显示分享菜单。 4. 使用`wx.onShareAppMessage`,来设置分享的内容和回调函数。 5. 在回调函数中,通过`return`语句返回分享的数据配置项,包括分享标题、路径和图片。 6. 用户点击分享给微信好友后,会触发微信的分享界面,用户可以选择发送给好友分享到朋友圈等操作。 例子代码如下: ```javascript // 在小程序页面中添加分享按钮 <button bindtap="share">分享好友</button> Page({ // 点击分享按钮时触发的事件 share: function() { // 显示分享菜单 wx.showShareMenu({ withShareTicket: true }); }, // 设置分享的内容和回调函数 onShareAppMessage: function() { return { title: '分享标题', path: '/pages/index/index', imageUrl: '/images/share.png' }; } }); ``` 注意:以上代码只展示了实现分享给微信好友的基本逻辑,具体的分享样式、分享后的跳转逻辑等可以根据自己的需求进行进一步定制和开发。 ### 回答3: 微信小程序提供了一个分享组件,可以通过代码实现将小程序分享给微信好友。 首先,在小程序页面中引入分享组件,可以使用`<button>`元素实现一个点击分享的按钮,如下所示: ```html <button open-type="share">分享好友</button> ``` 然后,在小程序的`app.json`文件中配置页面的路径,将分享组件所在的页面添加到`"pages"`数组中。 接下来,当用户点击分享按钮时,小程序会自动触发`<button>`元素的`open-type="share"`属性,然后跳转到分享页面,同时会触发页面的`onShareAppMessage`函数,我们可以在这个函数中自定义分享的标题、路径和图片等信息。在分享页面的`onShareAppMessage`函数中,我们可以使用以下代码实现分享功能: ```javascript onShareAppMessage: function () { return{ title: '分享标题', path: '分享路径', imageUrl: '分享图片地址' } } ``` 需要注意的是,分享路径必须是小程序中已注册的页面路径,并且不能携带查询参数。 最后,当用户点击分享后,微信会弹出一个分享的界面,用户可以选择将小程序分享给微信好友、发送给群组或者分享到朋友圈。 以上就是使用代码实现微信小程序分享给微信好友的方法,通过添加分享组件、配置分享页面和自定义分享函数,可以方便地实现小程序分享功能

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值