收藏
回答

updateTimelineShareData 苹果手机分享为什么不是自定义的链接?

据API文档https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html

调用的是wx.updateTimelineShareData 的接口

验证错误复现:请用安卓手机和苹果手机分别访问 https://wx.laserfair.com/awards/2021/mobile/get_code.php,然后在应用页面的右上角点击分享到朋友圈就能复现下图的问题

上图聊天对话框是“发送给朋友的”功能,从这截图看wx.updateAppMessageShareData 在苹果手机端也有问题。


我的业务逻辑:https://wx.laserfair.com/awards/2021/mobile/get_code.php 获得用户的openid会跳转到https://wx.laserfair.com/awards/2021/mobile/index.php

我做了投票分享的链接:https://wx.laserfair.com/awards/2021/mobile/get_code.php 旨在每个用户分享链接后都访问的是这个链接,然后我能获取到微信用户的Openid,用来做唯一标识,防止用户刷票。现在的情况是安卓手机这边“朋友圈分享”,“发送给朋友”的功能是正常的,分享的也是……get_code.php的链接。但到了苹果手机选择分享,直接分享的是https://wx.laserfair.com/awards/2021/mobile/index.php,然后这个页面点投票,没有经过get_code.php,所以我就得不到openid,导致用户投不了票。现在就是这么个情况

我的手机:redmiK30 微信8.0

测试用的苹果手机:iphone12 微信8.0

iphonexs Max 微信8

iphone8 微信8

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

    wx.ready(function(){
        // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
        wx.hideMenuItems({
            menuList: ["menuItem:copyUrl","menuItem:editTag","menuItem:delete",
                "menuItem:originPage","menuItem:readMode", "menuItem:openWithQQBrowser", "menuItem:openWithSafari",
                "menuItem:share:email","menuItem:share:brand","menuItem:share:qq",
                "menuItem:share:QZone"] // 要隐藏的菜单项,只能隐藏“传播类”和“保护类”按钮
        });


        wx.updateAppMessageShareData({
            title: '“红光奖”2021年度激光行业创新贡献奖评选活动', // 分享标题
            desc:'投票火爆进行中,请为心仪的企业和产品投上您宝贵的一票',
            link: 'http://wx.laserfair.com/awards/2021/mobile/get_code.php', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
            imgUrl: 'https://wx.laserfair.com/awards/2021/resource/img/m_banner.jpg', // 分享图标
            success: function () {
                console.log('可以开始分享')
                // 设置成功
            }
        });

        wx.updateTimelineShareData({
            title: '“红光奖”2021年度激光行业创新贡献奖评选活动', // 分享标题
            link: 'http://wx.laserfair.com/awards/2021/mobile/get_code.php', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
            imgUrl: 'https://wx.laserfair.com/awards/2021/resource/img/m_banner.jpg', // 分享图标
            success: function () {
                // 用户点击了分享后执行的回调函数
                console.log('朋友圈分享成功')
            }
        });

    });

    wx.error(function(res){
        // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
        alert.log(res);
    });


最后一次编辑于  2021-05-02
回答关注问题邀请回答
收藏

1 个回答

登录 后发表内容