晋升仪表盘

当前学分
0 / 100

再得 100 分,即可解锁合伙人选品库,开启 40% 分佣权限!

任务中心

兑换课程
+0 分
听完课程
+5/节
提交作业
+10/次
作业评优
+20/次

选品库锁定中

完成学分任务,解锁合伙人选品库,享受高额分佣权限

去赚学分

选品资源库

出厂价
¥20
零售价
$20
预计分佣
¥8

外贸爆款产品A

SOHO底价
¥20
预计分佣
¥8

外贸爆款产品B

SOHO底价
¥35
预计分佣
¥14
// 确保图片URL是完整的HTTPS地址 shareData.imgUrl = ensureFullUrl(shareData.imgUrl); // 验证分享数据 if (!shareData.title || !shareData.desc || !shareData.link || !shareData.imgUrl) { __JSSDK_DEBUG && console.error('分享数据不完整:', shareData); } __JSSDK_DEBUG && console.log('最终分享配置:', shareData); __JSSDK_DEBUG && console.log('分享图片URL:', shareData.imgUrl); // 验证图片是否可访问(微信要求图片必须可访问) function validateImageUrl(imgUrl, callback) { if (!imgUrl) { __JSSDK_DEBUG && console.error('图片URL为空'); callback(false); return; } // 预加载图片,验证是否可访问 var img = new Image(); img.onload = function() { __JSSDK_DEBUG && console.log('图片加载成功,尺寸:', img.width, 'x', img.height); // 检查图片尺寸(微信建议300x300以上) if (img.width < 200 || img.height < 200) { __JSSDK_DEBUG && console.warn('图片尺寸过小,建议至少300x300像素'); } callback(true); }; img.onerror = function() { __JSSDK_DEBUG && console.error('图片加载失败,URL可能无法访问:', imgUrl); callback(false); }; // 设置跨域属性 img.crossOrigin = 'anonymous'; img.src = imgUrl; } // 设置分享到朋友 function setShareToFriend() { try { // 确保图片URL是绝对路径且使用HTTPS var finalImgUrl = shareData.imgUrl; if (!finalImgUrl || finalImgUrl.indexOf('http') !== 0) { __JSSDK_DEBUG && console.error('图片URL格式错误:', finalImgUrl); return; } // 确保图片URL使用HTTPS(微信要求) if (finalImgUrl.indexOf('http://') === 0) { finalImgUrl = finalImgUrl.replace('http://', 'https://'); __JSSDK_DEBUG && console.warn('图片URL已从HTTP转换为HTTPS:', finalImgUrl); } // 验证分享数据完整性 if (!shareData.title || !shareData.desc || !shareData.link) { __JSSDK_DEBUG && console.error('分享数据不完整:', shareData); return; } __JSSDK_DEBUG && console.log('准备设置分享,图片URL:', finalImgUrl); // 优先使用新接口(微信6.0.2+) if (typeof wx.updateAppMessageShareData === 'function') { wx.updateAppMessageShareData({ title: shareData.title || '', desc: shareData.desc || '', link: shareData.link, imgUrl: finalImgUrl, success: function(res) { __JSSDK_DEBUG && console.log('updateAppMessageShareData 设置成功', res); if (shareData.success) shareData.success(res); }, cancel: function(res) { __JSSDK_DEBUG && console.log('updateAppMessageShareData 取消', res); if (shareData.cancel) shareData.cancel(res); }, fail: function(res) { __JSSDK_DEBUG && console.error('updateAppMessageShareData 失败:', res); if (shareData.fail) shareData.fail(res); } }); __JSSDK_DEBUG && console.log('已调用 updateAppMessageShareData,参数:', { title: shareData.title, desc: shareData.desc, link: shareData.link, imgUrl: finalImgUrl }); } else { __JSSDK_DEBUG && console.warn('updateAppMessageShareData 不可用,使用旧接口'); } // 兼容旧接口(微信6.0.2以下) if (typeof wx.onMenuShareAppMessage === 'function') { wx.onMenuShareAppMessage({ title: shareData.title || '', desc: shareData.desc || '', link: shareData.link, imgUrl: finalImgUrl, success: function(res) { __JSSDK_DEBUG && console.log('onMenuShareAppMessage 设置成功', res); if (shareData.success) shareData.success(res); }, cancel: function(res) { __JSSDK_DEBUG && console.log('onMenuShareAppMessage 取消', res); if (shareData.cancel) shareData.cancel(res); }, fail: function(res) { __JSSDK_DEBUG && console.error('onMenuShareAppMessage 失败:', res); if (shareData.fail) shareData.fail(res); } }); __JSSDK_DEBUG && console.log('已调用 onMenuShareAppMessage'); } } catch (e) { __JSSDK_DEBUG && console.error('设置分享到朋友失败:', e); } } // 设置分享到朋友圈 function setShareToTimeline() { try { // 确保图片URL是绝对路径且使用HTTPS var finalImgUrl = shareData.imgUrl; if (!finalImgUrl || finalImgUrl.indexOf('http') !== 0) { __JSSDK_DEBUG && console.error('图片URL格式错误:', finalImgUrl); return; } // 优先使用新接口 if (typeof wx.updateTimelineShareData === 'function') { wx.updateTimelineShareData({ title: shareData.title || '', link: shareData.link, imgUrl: finalImgUrl, success: function(res) { __JSSDK_DEBUG && console.log('updateTimelineShareData 设置成功', res); if (shareData.success) shareData.success(res); }, cancel: function(res) { __JSSDK_DEBUG && console.log('updateTimelineShareData 取消', res); if (shareData.cancel) shareData.cancel(res); }, fail: function(res) { __JSSDK_DEBUG && console.error('updateTimelineShareData 失败:', res); if (shareData.fail) shareData.fail(res); } }); __JSSDK_DEBUG && console.log('已调用 updateTimelineShareData'); } else { __JSSDK_DEBUG && console.warn('updateTimelineShareData 不可用,使用旧接口'); } // 兼容旧接口 if (typeof wx.onMenuShareTimeline === 'function') { wx.onMenuShareTimeline({ title: shareData.title || '', link: shareData.link, imgUrl: finalImgUrl, success: function(res) { __JSSDK_DEBUG && console.log('onMenuShareTimeline 设置成功', res); if (shareData.success) shareData.success(res); }, cancel: function(res) { __JSSDK_DEBUG && console.log('onMenuShareTimeline 取消', res); if (shareData.cancel) shareData.cancel(res); }, fail: function(res) { __JSSDK_DEBUG && console.error('onMenuShareTimeline 失败:', res); if (shareData.fail) shareData.fail(res); } }); __JSSDK_DEBUG && console.log('已调用 onMenuShareTimeline'); } } catch (e) { __JSSDK_DEBUG && console.error('设置分享到朋友圈失败:', e); } } // 立即设置分享(不等待图片验证,因为跨域可能阻止验证但图片实际可访问) __JSSDK_DEBUG && console.log('开始设置分享配置...'); setShareToFriend(); setShareToTimeline(); // 验证图片后再次设置分享(确保图片可访问) validateImageUrl(shareData.imgUrl, function(isValid) { if (isValid) { __JSSDK_DEBUG && console.log('图片验证通过,重新设置分享以确保生效'); // 再次执行分享设置 setShareToFriend(); setShareToTimeline(); } else { __JSSDK_DEBUG && console.warn('图片验证失败,但分享配置已设置。如果分享仍显示为链接,可能是图片URL无法被微信服务器访问'); __JSSDK_DEBUG && console.warn('请检查:1. 图片URL是否可公开访问 2. 是否有防盗链设置 3. 图片尺寸是否足够大(建议300x300)'); } }); // 延迟多次设置,确保配置生效(微信有时需要多次设置才能生效) setTimeout(function() { __JSSDK_DEBUG && console.log('延迟重新设置分享配置(第1次)'); setShareToFriend(); setShareToTimeline(); }, 500); setTimeout(function() { __JSSDK_DEBUG && console.log('延迟重新设置分享配置(第2次)'); setShareToFriend(); setShareToTimeline(); }, 1000); // 监听页面可见性变化,重新设置分享(用户点击分享按钮时) document.addEventListener('visibilitychange', function() { if (!document.hidden) { __JSSDK_DEBUG && console.log('页面重新可见,重新设置分享配置'); setShareToFriend(); setShareToTimeline(); } }); // 兼容WeixinJSBridge(用于旧版微信,通常不需要) if (typeof WeixinJSBridge !== 'undefined') { WeixinJSBridge.on('menu:share:appmessage', function () { WeixinJSBridge.invoke('sendAppMessage', { title: shareData.title, desc: shareData.desc, link: shareData.link, img_url: shareData.imgUrl }); }); WeixinJSBridge.on('menu:share:timeline', function () { WeixinJSBridge.invoke('shareTimeline', { title: shareData.title, link: shareData.link, img_url: shareData.imgUrl }); }); } // 页面加载完成后再次设置(确保分享配置生效) setTimeout(function() { __JSSDK_DEBUG && console.log('延迟重新设置分享配置'); setShareToFriend(); setShareToTimeline(); }, 500); }); wx.error(function(res){ __JSSDK_DEBUG && console.error('微信JS-SDK配置失败:', res); // 输出详细错误信息 if (res.errMsg) { __JSSDK_DEBUG && console.error('错误信息:', res.errMsg); // 常见错误提示 if (res.errMsg.indexOf('invalid signature') !== -1) { __JSSDK_DEBUG && console.error('签名验证失败,请检查:1. 域名是否在微信公众平台配置了JS接口安全域名 2. URL是否与签名时一致'); } else if (res.errMsg.indexOf('invalid url') !== -1) { __JSSDK_DEBUG && console.error('URL无效,请检查当前页面URL'); } else if (res.errMsg.indexOf('invalid appid') !== -1) { __JSSDK_DEBUG && console.error('AppID无效,请检查配置'); } } }); })();