微信内置浏览器 H5分享功能(前端)

最近做了一个签收的功能需要 分享H5

制作前

 

 制作后

微信开发文档提供   概述 | 微信开放文档

 wx.config({
            debug: false, // 开启调试模式,调用的所有 api 的返回值会在客户端 alert 出来,若要查看传入的参数,可以在 pc 端打开,参数信息会通过 log 打出,仅在 pc 端时才会打印。
            appId: res.data.appid, // 必填,公众号的唯一标识
            timestamp: res.data.timestamp, // 必填,生成签名的时间戳
            nonceStr: res.data.nonceStr, // 必填,生成签名的随机串
            signature: res.data.signature, // 必填,签名
            jsApiList: [
              "updateAppMessageShareData",
              "onMenuShareAppMessage",
              "updateTimelineShareData",
              "onMenuShareTimeline",
            ], // 必填,需要使用的 JS 接口列表
          });

          wx.ready(function () {
            wx.updateAppMessageShareData({
              title: shName, // 分享标题
              desc: shContent, // 分享描述
              link: 'https://xxxxxxx.cn/#/?id=' + shid, // 分享链接,该链接域名或路径必须与当前页面对应的公众号 JS 安全域名一致   location.href.split("#")[0]
              imgUrl: "https://xxxxxxx.cn/FrW1XgpCmJsIHFts3J3W5LGDT2Yk", // 分享图标
              // success: function () {
              // },
              // cancel: function () {
              //   // 用户取消分享后执行的回调函数
              // },
            });
          });

(上述文件写在onLoad()内即可 或者写在请求接口的方法内)

wx.config()内公众号的唯一标识,生成签名的时间戳,生成签名的随机串,签名 由后端提供即可。(主要踩坑:不建议前端写死或者生成,会形成不必要的bug)

1.这个里面可以通过debug来检测代码是否存在问题

wx.ready()内为分享给好友(主要踩坑:1.分享标题,分享描述,2.link内需要传参)

1.分享标题,分享描述

(1).内容需要写成动态

sharo(shName,shContent,shid){
// 包装成方法 通过传参的方式
}

(2)link内需要传参

 link: 'https://xxxxx.cn/#/?id=' + shid, 
//这个问题  搜索大量的文章 和遇到同样的问题 反应可能是hash和history的问题
// 我这边遇到的问题是因为被文档误导 写成以下
 link: 'https://xxxxx.cn' 与域名一样

反正同为hash模式 写成link: 'https://xxxxx.cn/#/?id=' + shid, 格式即可

全部代码

 onLoad(optent) {
    this.sharo();
  },
methods: {
 sharo(shName,shContent,shid) {
      axios({
        method: "GET",
        url: `https://xxxx/api/H5`,
        params: {
          url: location.href.split("#")[0],
        },
      })
        .then((res) => {
          wx.config({
            debug: false, // 开启调试模式,调用的所有 api 的返回值会在客户端 alert 出来,若要查看传入的参数,可以在 pc 端打开,参数信息会通过 log 打出,仅在 pc 端时才会打印。
            appId: res.data.appid, // 必填,公众号的唯一标识
            timestamp: res.data.timestamp, // 必填,生成签名的时间戳
            nonceStr: res.data.nonceStr, // 必填,生成签名的随机串
            signature: res.data.signature, // 必填,签名
            jsApiList: [
              "updateAppMessageShareData",
              "onMenuShareAppMessage",
              "updateTimelineShareData",
              "onMenuShareTimeline",
            ], // 必填,需要使用的 JS 接口列表
          });

          wx.ready(function () {
            wx.updateAppMessageShareData({
              title: shName, // 分享标题
              desc: shContent, // 分享描述
              link: 'https://xxxx/#/?id=' + shid, // 分享链接,该链接域名或路径必须与当前页面对应的公众号 JS 安全域名一致   location.href.split("#")[0]
              imgUrl: "https://xxxx/icon", // 分享图标
              // success: function () {
              // },
              // cancel: function () {
              //   // 用户取消分享后执行的回调函数
              // },
            });
          });

          //分享给朋友
        })
        .catch((req) => {
          alert("失败");
        });
    },
}

注:遇到签名错误 找后端即可。

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值