近期在做微信公众号应用开发时发现微擎register_jssdk分享到朋友功能无法使用,当前使用的微擎版本是1.8.2,通过查阅微信公众号官方的相关文档后发现jssdk的分享功能有进行调整。
引用官方的话:
请注意,原有的 wx.onMenuShareTimeline、wx.onMenuShareAppMessage、wx.onMenuShareQQ、wx.onMenuShareQZone 接口,即将废弃。请尽快迁移使用客户端6.7.2及JSSDK 1.4.0以上版本支持的 wx.updateAppMessageShareData、updateTimelineShareData 接口。
而通过微信开发者工具对1.8.2版本的微擎的register_jssdk()方法进行分析,发现这一版本用的微信官方的js文件是1.3.2的版本。而最新的已经是1.4.0版本,且分享的调用方法已经发生了变化,看来微擎的一些开发文档要进行更新啊。
考虑到可能是微擎最新的版本是2.0.0版本,想着升级到最新版本 ,register_jssdk()的调用微信jssdk版本也会升级到最新的jssdk1.4.0吧,于是便把微擎升级到了2.0.0最新版本,然而jssdk的版本并未是最新版本……
既然微擎官方最新版本都不处理这个问题的话,那么只有我们自己来给它“升级”了。找到/app/common/common.func.php,搜索jssdk,大概在第167行,将这里的jweixin-1.3.2.js修改成jweixin-1.4.0.js。然后,在下方的jssdkconfig.jsApiList 增加“updateTimelineShareData ”等项,最后保存即可。
分享调用到的方法:
自定义“分享到朋友圈”及“分享到QQ空间”按钮的分享内容
PHP
1
2
3
4
5
6
7
8
9
10
wx.ready(function(){//需在用户可能点击分享按钮前就先调用
wx.updateTimelineShareData({
title:'',// 分享标题
link:'',// 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl:'',// 分享图标
success:function(){
// 设置成功
}
})
});
自定义“分享给朋友”及“分享到QQ”按钮的分享内容
PHP
1
2
3
4
5
6
7
8
9
10
11
wx.ready(function(){//需在用户可能点击分享按钮前就先调用
wx.updateAppMessageShareData({
title:'',// 分享标题
desc:'',// 分享描述
link:'',// 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl:'',// 分享图标
success:function(){
// 设置成功
}
})
});
这里分享一个案例:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#@author 爱优科技
{phpechoregister_jssdk();}
wx.ready(function(){//需在用户可能点击分享按钮前就先调用
wx.updateAppMessageShareData({
title:"{php echo $this->module['config']['sname']}",// 分享标题
desc:"{php echo $this->module['config']['sinfo']}",// 分享描述
link:"{php echo $_W[siteroot].$_SERVER['REQUEST_URI']}",// 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl:"{php echo tomedia($this->module['config']['simg'])}",// 分享图标
success:function(){
// 设置成功
}
})
});
wx.ready(function(){//需在用户可能点击分享按钮前就先调用
wx.updateTimelineShareData({
title:"{php echo $this->module['config']['sname']}",// 分享标题
link:"{php echo $_W[siteroot].$_SERVER['REQUEST_URI']}",// 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl:"{php echo tomedia($this->module['config']['simg'])}",// 分享图标
success:function(){
// 设置成功
}
})
});