
24号那天写了一个”自己动手丰衣足食,关于分享标题不对的问题解决方法,大神请略过。原帖地址:https://x1.php168.com/bbs/show-13095.html
后来突然发现,这样的方法对于帖子或分类信息中带有图片的,是可以调用出分享图片的,如图
而对于原内容中无图片的,则分享图片显示的是无图的,我就想能不能对于内容本身没有图片的,则调用指定的图片,于是就动手修改了昨天那段代码中的部分代码。
将原代码如下:
<!-- 微信分享 -->
{include file="index@share" /}
<!--
微信分享插件里边有这段代码了
<script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.3.2.js"></script>
-->
<script type="text/javascript">
wx.miniProgram.getEnv(function (res) {
if (res.miniprogram==true) {
var info = {
title: '{$info.title}',
picurl: '{$info.picurl}',
url: "{:get_url(urls('show',['id'=>$id]))}?p_uid={$userdb.uid}",
};
var json = JSON.stringify(info);
wx.miniProgram.postMessage({
data: info,
});
}
});
</script>这个代码
picurl: '{$info.picurl}',替换成了判断语句:
picurl: '{notempty name="$info.picurl"}
{$info.picurl}
{else/}__DOMAIN____STATIC__/images/nopic.jpg
{/notempty}',结果发现,分享的时候,对于内容中本身没有图片的,根本调用不出来这个指定的图片,后来在torylf大神的指导下,发现上述的那个JS根本属于无效代码,意思是有它无它,只要有下面这段代码,即可以分享。
{include file="index@share" /}于是思路转到修index@share上面,这个文件即template\index_style\default\index\share.htm这个文件,打开后,相应替换了部分代码
function ShareTimeline(){
wx.onMenuShareTimeline({
title: '{$share.title}',
link: '{$share.link}',
imgUrl: '{$share.picurl}',
trigger: function (res) {
// 不要尝试在trigger中使用ajax异步请求修改本次分享的内容,因为客户端分享操作是一个同步操作,这时候使用ajax的回包会还没有返回
},
success: function (res) {
layer.msg('成功分享到朋友圈');
},
cancel: function (res) {
//alert('系统监测到你没有真正分享到朋友圈,请重新分享!');
},
fail: function (res) {
alert(JSON.stringify(res));
}
});
wx.showOptionMenu();
//SharShowMsg();
//alert('请点击左上角的菜单,然后分享到朋友圈去即可');
}替换上述代码的
imgUrl: '{$share.picurl}'为
imgUrl: '{notempty name="$info.picurl"}
{$share.picurl}
{else/}__DOMAIN____STATIC__/images/nopic.jpg
{/notempty}'同样替换了下面代码中的
function ShareAppMessage(){
wx.onMenuShareAppMessage({
title: '{$share.title}',
desc: '{$share.about}',
link: '{$share.link}',
imgUrl: '{$share.picurl}',
trigger: function (res) {
// 不要尝试在trigger中使用ajax异步请求修改本次分享的内容,因为客户端分享操作是一个同步操作,这时候使用ajax的回包会还没有返回
//alert('请分享到朋友圈去,分享到微信好友无效!');
},
success: function (res) {
layer.msg('成功分享到好友');
//window.location.href='?job=have_shareFriend';
},
cancel: function (res) {
//alert('你已取消操作,建议你重新分享给好友!');
},
fail: function (res) {
alert(JSON.stringify(res));
}
});
//alert('请点击左上角的菜单,发送给朋友');
}这段代码中的
imgUrl: '{$share.picurl}'替换为
imgUrl: '{notempty name="$info.picurl"}
{$share.picurl}
{else/}__DOMAIN____STATIC__/images/nopic.jpg
{/notempty}'还有下面这段代码
function share_app(type){
window.inApk.app_share("{$share.link}","{$share.title}","{$share.about}","{$share.picurl}",type);
}这段代码中的
{$share.picurl}替换为
{notempty name="$info.picurl"}
{$share.picurl}
{else/}__DOMAIN____STATIC__/images/nopic.jpg
{/notempty}将替换过的share.htm上传到空间对应文件夹中,运行结果,所有替换后的代码均正常执行了,但分享时,对于原内容中没有图片的,仍是调用不出来指定的图片指写图片下面这段代码,运行后的代码也指向的网站上的真实图片nopic.jpg的地址
__DOMAIN____STATIC__/images/nopic.jpg
三处替换后的运行代码分另为:
function ShareTimeline(){
wx.onMenuShareTimeline({
title: '收购米径20公分银杏实生树',
link: 'https://www.917miaomu.com/qiugou/show-30.html?p_uid=2&',
imgUrl: 'https://www.917miaomu.com/public/static/images/nopic.jpg
',
trigger: function (res) {
// 不要尝试在trigger中使用ajax异步请求修改本次分享的内容,因为客户端分享操作是一个同步操作,这时候使用ajax的回包会还没有返回
},
success: function (res) {
layer.msg('成功分享到朋友圈');
},
cancel: function (res) {
//alert('系统监测到你没有真正分享到朋友圈,请重新分享!');
},
fail: function (res) {
alert(JSON.stringify(res));
}
});
wx.showOptionMenu();
//SharShowMsg();
//alert('请点击左上角的菜单,然后分享到朋友圈去即可');
}function ShareAppMessage(){
wx.onMenuShareAppMessage({
title: '收购米径20公分银杏实生树',
desc: '收购米径20公分银杏实生树一般以上树形,场地价800元',
link: 'https://www.917miaomu.com/qiugou/show-30.html?p_uid=2&',
imgUrl: 'https://www.917miaomu.com/public/static/images/nopic.jpg
',
trigger: function (res) {
// 不要尝试在trigger中使用ajax异步请求修改本次分享的内容,因为客户端分享操作是一个同步操作,这时候使用ajax的回包会还没有返回
//alert('请分享到朋友圈去,分享到微信好友无效!');
},
success: function (res) {
layer.msg('成功分享到好友');
//window.location.href='?job=have_shareFriend';
},
cancel: function (res) {
//alert('你已取消操作,建议你重新分享给好友!');
},
fail: function (res) {
alert(JSON.stringify(res));
}
});
//alert('请点击左上角的菜单,发送给朋友');
}function share_app(type){
window.inApk.app_share("https://www.917miaomu.com/qiugou/show-30.html?p_uid=2&","收购米径20公分银杏实生树","收购米径20公分银杏实生树一般以上树形,场地价800元","https://www.917miaomu.com/public/static/images/nopic.jpg
",type);
}而内容中本身有图的,分享时的代码如下:
function ShareTimeline(){
wx.onMenuShareTimeline({
title: '2019年7月23日最新苗木求购信息',
link: 'https://www.917miaomu.com/qiugou/show-42.html?p_uid=2&',
imgUrl: ' https://www.917miaomu.com/public/uploads/images/20190723/1_20190723212445bc711.jpeg';,
trigger: function (res) {
// 不要尝试在trigger中使用ajax异步请求修改本次分享的内容,因为客户端分享操作是一个同步操作,这时候使用ajax的回包会还没有返回
},
success: function (res) {
layer.msg('成功分享到朋友圈');
},
cancel: function (res) {
//alert('系统监测到你没有真正分享到朋友圈,请重新分享!');
},
fail: function (res) {
alert(JSON.stringify(res));
}
});
wx.showOptionMenu();
//SharShowMsg();
//alert('请点击左上角的菜单,然后分享到朋友圈去即可');
}function ShareAppMessage(){
wx.onMenuShareAppMessage({
title: '2019年7月23日最新苗木求购信息',
desc: '「风轻云淡:银杏,胸径30公分,中园树12米以下,整体圆冠,3米以下出大枝干直,价格5000到场地,联系电话:15562950666」---------------「京鲁银杏祁德福15852..',
link: 'https://www.917miaomu.com/qiugou/show-42.html?p_uid=2&',
imgUrl: ' https://www.917miaomu.com/public/uploads/images/20190723/1_20190723212445bc711.jpeg';,
trigger: function (res) {
// 不要尝试在trigger中使用ajax异步请求修改本次分享的内容,因为客户端分享操作是一个同步操作,这时候使用ajax的回包会还没有返回
//alert('请分享到朋友圈去,分享到微信好友无效!');
},
success: function (res) {
layer.msg('成功分享到好友');
//window.location.href='?job=have_shareFriend';
},
cancel: function (res) {
//alert('你已取消操作,建议你重新分享给好友!');
},
fail: function (res) {
alert(JSON.stringify(res));
}
});
//alert('请点击左上角的菜单,发送给朋友');
}function share_app(type){
window.inApk.app_share("https://www.917miaomu.com/qiugou/show-42.html?p_uid=2&","2019年7月23日最新苗木求购信息","「风轻云淡:银杏,胸径30公分,中园树12米以下,整体圆冠,3米以下出大枝干直,价格5000到场地,联系电话:15562950666」---------------「京鲁银杏祁德福15852.."," https://www.917miaomu.com/public/uploads/images/20190723/1_20190723212445bc711.jpeg",type);
}我实在没看出来一个无图,一个有图的分享代码有什么区别,但就是一个成功一个不成功,加上时间、精力,主要是能力有限,解决不了这个问题了,因此将过程发布到平台。
希望官方能解决,修复下官方现有微信分享代码,针对内容本身无图的,可以调用指定的图片。谢谢,不知道我写了这么多,有没有表达的清楚。昨天3个多小时,今天2个多小时,没搞定这个问题,郁闷,能力有限,请大神别笑话哈。
$share['picurl'] = str_replace("https://你的域名不加后缀","https://默认图片地址",$share['picurl']); /添加的
然后照着改

没有图的


有图的

原理,把
{$info.picurl}改成
{$share.picurl}在没有图片的时候通过这个变量({$share.picurl})可以获取到你的网址
然后通过
$share['picurl'] = str_replace("https://www.123.com","https://123.com/2019/10/e42ae61747c7986005a2f1d4652f341c.png",$share['picurl']);针对只存在网址的时候给网址替换成图片URL地址
然后就行了
你需要再列表和主页也可以单独做个sharexx.htm 运用,替换对于的字段值就可以了