1:安装 npm install weixin-js-sdk
2: 导入import wx from 'weixin-js-sdk';
3:wx.config({ //
debug: false, // 开启调试模式,
appId: 公众号去找, // 必填,公众号的唯一标识
timestamp: 后端给的, // 必填,生成签名的时间戳
nonceStr: 后端给的; // 必填,生成签名的随机串
signature: 后端给的, // 必填,签名
jsApiList: [],接口列表,你要调用那些接口就写那些
});
4:时间戳,随机字符串,签名都是后端调用微信的api然后生成的。概述 | 微信开放文档 (qq.com)
获取签名:
1:获取access_token微信开放文档 (qq.com)
https请求方式: GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
后端调这个接口然后就可以获取access_token了,grant_type这里是固定的值client_credential
2:通过access_token获取jsapi_ticket
https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi
后端调这个接口,只需要改变参数就行
3:获取jsapi_ticket就可以生成签名了,随机字符串就让后端随机生成随便多少位的随机字符串,时间戳就是当前的时间戳,然后再通过window.location.href获取当前页面,再把这4个参数合并起来
签名算法
签名生成规则如下:参与签名的字段包括noncestr(随机字符串), 有效的jsapi_ticket, timestamp(时间戳), url(当前网页的URL,不包含#及其后面部分) 。对所有待签名参数按照字段名的ASCII 码从小到大排序(字典序)后,使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串string1。这里需要注意的是所有参数名均为小写字符。对string1作sha1加密,字段名和字段值都采用原始值,不进行URL 转义。
jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg&noncestr=Wm3WZYTPz0wzccnW×tamp=1414587457&url=http://mp.weixin.qq.com?params=value
上面这个拼接出来然后再通过sha1转化就是签名了,,
然后让后端把签名,时间戳,随机字符串都返回给你, 你再把这些放在wx.config里面就ok了。
jsApiList这里面需要填的接口列表在这概述 | 微信开放文档 (qq.com)在附录2这里
最后一步调用接口(这里面调用了那个接口在jsApiList就加入一个)
wx.ready(function () { //需在用户可能点击分享按钮前就先调用
wx.updateAppMessageShareData({
title: '', // 分享标题
desc: '', // 分享描述
link: '', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: '', // 分享图标
success: function () {
// 设置成功
}
})
});
然后就可以点击右上角三个点分享给朋友啦,这整个方法我是在onload里面调用的,最后如果你的h5是一个链接,并且是分享在消息记录里面那种,直接打开好像是没有效果的,我就是这个原因找了很久,在公众号里面打开再分享就没有问题。