微信实现分享转发功能

本文介绍了微信小程序实现分享转发的详细步骤,包括如何获取access_token、jsapi_ticket,生成timestamp、nonceStr,以及如何拼接字符串进行sha1加密以得到signature。重点在于access_token的定时获取和存储,以及签名的生成过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

根据开发文档,首先看一下前端需要什么数据:

var currentUrl  = window.location.href;
//微信分享功能实现
$.ajax({
  
  //调取接口返回验证码
    type:"get",
    url:"http://域名/接口名",
    data:{
  
  'url':currentUrl},
    success:function(res){
   
   
        console.log(res)
        if(res.success==true){
            //分享链接
            var imgUrl = '图片地址';
            var lineLink = 'http://域名/文件名/';
            var descContent = "分享展示内容";
            var shareTitle = '分享标题';
            wx.config({
                debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
                appId: 'wxdbcbd7962d016d0b', // 必填,公众号的唯一标识
                timestamp: res.data.timestamp, // 必填,生成签名的时间戳
                nonceStr: res.data.nonceStr, // 必填,生成签名的随机串
                signature: res.data.signature,// 必填,签名,见附录1
                jsApiList: [
                    'checkJsApi',
                    'onMenuShareAppMessage',
                    'onMenuShareTimeline',
                    'onMenuShareQQ'

                ] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
            });
            wx.ready(function(){
   
   
                // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
                wx.checkJsApi({
                    jsApiList: ['onMenuShareAppMessage','onMenuShareTimeline','onMenuShareQQ'], // 需要检测的JS接口列表,所有JS接口列表见附录2,
                    success: function(res) {
   
   
                        // console.log(res);
                        // 以键值对的形式返回,可用的api值true,不可用为false
                        // 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
                    }
                });
                wx.onMenuShareAppMessage({
                    title: shareTitle, // 分享标题
                    desc: descContent, // 分享描述
                    link: lineLink, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
                    imgUrl: imgUrl, // 分享图标
                    type: '', // 分享类型,music、video或link,不填默认为link
                    dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空
                    success: function () {
   
   
                        // 用户确认分享后执行的回调函数
                        //alert('success')
                    },
                    cancel: function () {
   
   
                        // 用户取消分享后执行的回调函数
                        // alert('false');
                    }
                });
                wx.onMenuShareTimeline({
                    title: shareTitle, // 分享标题
                    link: lineLink, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
                    imgUrl: imgUrl, // 分享图标
                    success: function () {
   
   
                        // 用户确认分享后执行的回调函数
                        // alert('success')
                    },
                    cancel: function () {
   
   
                        // 用户取消分享后执行的回调函数
                        // alert('false');
                    }
                });
                wx.onMenuShareQQ({
                    title: shareTitle, // 分享标题
                    desc: descContent,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值