收藏
回答

微信分享只显示链接?

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

<script>

// 使用带随机参数的URL作为分享链接,但签名使用原始URL

var baseUrl = "{$share_url}";  // 分享链接带随机参数

var signUrl = "{$current_url}"; // 签名使用原始URL

var shareImageUrl = 'http://www.wzleh.cn/mobile/themes/blue/images/index_yl2.png';


// 确保图片URL是完整的绝对路径

if (shareImageUrl.indexOf('http') !== 0) {

    shareImageUrl = 'http://www.wzleh.cn/' + shareImageUrl.replace(/^\//, '');

}


// 分享数据 - 确保标题和描述合适

var wxData = {

    "imgUrl" : shareImageUrl,

    "link"   : baseUrl,  // 分享使用带随机参数的URL

    "title"  : '{$article.title|escape:"javascript"|truncate:20}',   // 标题限制在20字内

    "desc"   : '{$article.title|escape:"javascript"|truncate:50}'    // 描述限制在50字内

};


console.log('分享配置:', wxData);


// 微信配置 - 签名使用原始URL

wx.config({

    debug: true,  // 保持调试模式以便查看问题

    appId: '{$signPackage.appId|escape:"javascript"}',

    timestamp: {$signPackage.timestamp},

    nonceStr: '{$signPackage.nonceStr|escape:"javascript"}',

    signature: '{$signPackage.signature|escape:"javascript"}',

    jsApiList: [

        'updateTimelineShareData',

        'updateAppMessageShareData',

        'onMenuShareTimeline',

        'onMenuShareAppMessage',

        'onMenuShareQQ',

        'onMenuShareWeibo'

    ]

});


wx.ready(function () {

    console.log('微信JS-SDK初始化成功');

    

    // 方法1: 新版分享接口

    wx.updateTimelineShareData({

        title: wxData.title,

        link: wxData.link,

        imgUrl: wxData.imgUrl,

        success: function () {

            console.log('updateTimelineShareData: 成功');

        },

        fail: function (res) {

            console.error('updateTimelineShareData失败:', res);

        }

    });

    

    wx.updateAppMessageShareData({

        title: wxData.title,

        desc: wxData.desc,

        link: wxData.link,

        imgUrl: wxData.imgUrl,

        success: function () {

            console.log('updateAppMessageShareData: 成功');

        },

        fail: function (res) {

            console.error('updateAppMessageShareData失败:', res);

        }

    });

    

    // 方法2: 旧版分享接口(兼容性更好)

    wx.onMenuShareTimeline({

        title: wxData.title,

        link: wxData.link,

        imgUrl: wxData.imgUrl,

        success: function () {

            console.log('onMenuShareTimeline: 成功');

            // 分享成功统计

            trackShare('timeline');

        },

        cancel: function () {

            console.log('用户取消分享到朋友圈');

        },

        fail: function (res) {

            console.error('onMenuShareTimeline失败:', res);

        }

    });

    

    wx.onMenuShareAppMessage({

        title: wxData.title,

        desc: wxData.desc,

        link: wxData.link,

        imgUrl: wxData.imgUrl,

        type: 'link',

        success: function () {

            console.log('onMenuShareAppMessage: 成功');

            trackShare('friend');

        },

        cancel: function () {

            console.log('用户取消分享给朋友');

        },

        fail: function (res) {

            console.error('onMenuShareAppMessage失败:', res);

        }

    });

    

    // 方法3: 延迟设置分享(解决时机问题)

    setTimeout(function() {

        console.log('延迟设置分享信息');

        // 重新调用一次分享设置

        wx.updateTimelineShareData({

            title: wxData.title,

            link: wxData.link,

            imgUrl: wxData.imgUrl

        });

        

        wx.updateAppMessageShareData({

            title: wxData.title,

            desc: wxData.desc,

            link: wxData.link,

            imgUrl: wxData.imgUrl

        });

    }, 1000);

});


wx.error(function(res){

    console.error('微信JS-SDK配置失败:', res);

    if (res.errMsg && res.errMsg.indexOf('invalid signature') !== -1) {

        console.error('签名验证失败,请检查:');

        console.error('签名URL:', '{$signPackage.url}');

        console.error('当前URL:', window.location.href.split('#')[0]);

    }

});


// 分享统计

function trackShare(platform) {

    var xhr = new XMLHttpRequest();

    xhr.open('POST', 'share_statistics.php', true);

    xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

    xhr.send('article_id={$article.article_id}&platform=' + platform);

}

</script>


调试接口是成功的,,但微信分享只显示链接,也做了动态清除缓存了,,请问这是什么原因,,麻烦各位大佬帮助一下,谢谢

回答关注问题邀请回答
收藏

2 个回答

  • 迪克
    迪克
    2025-11-03

    链接转成二维码 扫码进到h5 再转发试试

    配置微信分享的网页,只有通过公众号/扫码/分享卡片三种渠道打开,才能自定义分享,直接在微信打开某一个链接,分享出来的依然是链接

    2025-11-03
    有用
    回复 1
    • *-*一片空白
      *-*一片空白
      2025-11-03
      哦,,明白了,谢谢
      2025-11-03
      回复
  • 智能回答 智能回答 本次回答由AI生成
    2025-11-03
    有用
登录 后发表内容