上传文件
vendor中新建文件夹“wxshare"
将官方的文件直接上传到该文件夹
其中sample.php没必要上传,其他直接上传就好。
文件修改
但是在使用前由于相对路径问题,还需要对jssdk进行一点修改。
两处:
“access_token.php”
改为
__DIR__."/access_token.php"
两处
"jsapi_ticket.php"
改为
__DIR__."/jsapi_ticket.php"
控制器调用
在controller中调用,由于页面分享功能只能调用当前页面所以不能在不同url中通过axios等异步方式获取。否则会出现63002错误,这个排查的时候很不容易发现,在此做个记录。
public function prize2()
{
vendor('wxshare.JSSDK');
$jssdk = new \JSSDK('wx***************',"f1a5d80***************************");
$signPackage = $jssdk->GetSignPackage();
$this->view->assign('data',$signPackage);
return $this->view->fetch("prize2");
}
前端
这里偷个懒,就直接把代码放上来了。
let data={:json_encode($data)};
wx.config({
debug: false,
appId: data.appId, // 必填,公众号的唯一标识
timestamp: data.timestamp, // 必填,生成签名的时间戳
nonceStr: data.nonceStr, //必填, 生成签名的随机串
signature: data.signature, //必填,签名
jsApiList: [
'updateAppMessageShareData', 'updateTimelineShareData','onMenuShareTimeline',
'onMenuShareAppMessage', 'onMenuShareQQ', 'onMenuShareQZone'] //必填, JS接口列表,这里只填写了分享需要的接口
})
var title = 'this is the sshare title';
var imgUrl = 'https://img01.yzcdn.cn/vant/logo.png';
var link = 'http://www.domain.com';
var desc = 'this is a share description';
wx.ready(function () {
wx.onMenuShareTimeline({
title: title,
link: link,
desc:desc,
imgUrl: imgUrl,
success: function() {
// 用户确认分享后执行的回调函数
},
cancel: function() {
// 用户取消分享后执行的回调函数
}
});
wx.onMenuShareAppMessage({
title: title, // 分享标题
desc: desc, // 分享描述
link: link, // 分享链接
imgUrl: imgUrl, // 分享图标
type: 'link', // 分享类型,music、video或link,不填默认为link
dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空
success: function() {
// 用户确认分享后执行的回调函数
},
cancel: function() {
// 用户取消分享后执行的回调函数
}
});
})
```