返回

微信公众号JSSDK 自定义分享

前端


大家好!前段时间,我在开发的公众号里加入了一个自定义分享的功能。今天,我在这里分享一下代码和开发中遇到的问题,帮助大家避免踩坑。

1.微信公众号开发需要登录才能获取appid

微信公众号开发需要先登录才能获取appid。我在这里分享的代码只包含分享部分,授权采用静默授权,后台提供的接口,我这里只负责调用。

2.代码放在需要分享的页面

需要分享出去的页面就要把代码放在那个页面。我的分享出去的页面不包含在公众号里。

3.参考微信JSSDK接口文档

开发前建议大家先参考微信JSSDK接口文档,里面有详细的开发指引。

接下来,我将介绍在微信公众号中使用JSSDK实现自定义分享的具体步骤。

1.在微信公众平台上注册并配置应用

首先,需要在微信公众平台上注册并配置一个应用。在配置应用时,需要填写应用名称、应用、应用图标等信息。同时,还需要设置应用的权限,以便于应用能够使用微信JSSDK的接口。

2.获取微信JSSDK签名

在使用微信JSSDK接口之前,需要先获取微信JSSDK签名。微信JSSDK签名是用于验证请求合法性的凭证,是通过使用微信提供的签名算法生成的。

3.在页面中引入微信JSSDK

获取到微信JSSDK签名后,就可以在页面中引入微信JSSDK。引入微信JSSDK的代码如下:

<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>

4.使用微信JSSDK接口实现自定义分享

引入微信JSSDK后,就可以使用微信JSSDK接口实现自定义分享了。实现自定义分享的代码如下:

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

wx.ready(function () {
  //分享到朋友圈
  wx.onMenuShareTimeline({
    title: '分享标题', // 分享标题
    link: '分享链接', // 分享链接
    imgUrl: '分享图标', // 分享图标
    success: function () {
      // 用户确认分享后执行的回调函数
    },
    cancel: function () {
      // 用户取消分享后执行的回调函数
    }
  });

  //分享给朋友
  wx.onMenuShareAppMessage({
    title: '分享标题', // 分享标题
    desc: '分享', // 分享描述
    link: '分享链接', // 分享链接
    imgUrl: '分享图标', // 分享图标
    type: 'link', // 分享类型,music、video或link,不填默认为link
    dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空
    success: function () {
      // 用户确认分享后执行的回调函数
    },
    cancel: function () {
      // 用户取消分享后执行的回调函数
    }
  });

  //分享到QQ
  wx.onMenuShareQQ({
    title: '分享标题', // 分享标题
    desc: '分享描述', // 分享描述
    link: '分享链接', // 分享链接
    imgUrl: '分享图标', // 分享图标
    success: function () {
      // 用户确认分享后执行的回调函数
    },
    cancel: function () {
      // 用户取消分享后执行的回调函数
    }
  });

  //分享到腾讯微博
  wx.onMenuShareWeibo({
    title: '分享标题', // 分享标题
    desc: '分享描述', // 分享描述
    link: '分享链接', // 分享链接
    imgUrl: '分享图标', // 分享图标
    success: function () {
      // 用户确认分享后执行的回调函数
    },
    cancel: function () {
      // 用户取消分享后执行的回调函数
    }
  });
});

以上代码中,appId、timestamp、nonceStr和signature都是通过微信提供的签名算法生成的。

5.测试

完成以上步骤后,就可以在公众号中测试自定义分享功能了。首先,需要将公众号的测试版二维码发给测试人员。测试人员在扫描二维码后,就可以在手机上看到公众号的测试版。然后,测试人员可以点击页面上的分享按钮,查看自定义分享功能是否正常工作。

以上就是使用微信JSSDK实现自定义分享的全部内容。希望对大家有所帮助。

当然,在开发过程中,我也遇到了一些问题。在这里,我也分享一下我的解决方法。

1.分享出去的链接无法在微信中打开

这个问题是由于分享出去的链接不是https链接导致的。微信只支持https链接的分享。所以,在分享出去的链接前,需要先检查一下链接是否为https链接。如果不是https链接,需要先将链接转换为https链接。

2.分享出去的链接无法在朋友圈中打开

这个问题是由于分享出去的链接不是微信公众号的链接导致的。微信只支持分享微信公众号的链接。所以,在分享出去的链接前,需要先检查一下链接是否是微信公众号的链接。如果不是微信公众号的链接,需要先将链接转换为微信公众号的链接。

3.分享出去的链接无法在QQ中打开

这个问题是由于分享出去的链接不是QQ空间的链接导致的。QQ只支持分享QQ空间的链接。所以,在分享出去的链接前,需要先检查一下链接是否是QQ空间的链接。如果不是QQ空间的链接,需要先将链接转换为QQ空间的链接。

以上就是在开发过程中遇到的问题以及解决方法。希望对大家有所帮助。