微信公众号,H5自定义分享
uni_app端代码 vue
import jweixin from '../../jweixin'
//在根目录下创建jweixin文件夹,内放index.js,下载微信jsdk,链接http://res.wx.qq.com/open/js/jweixin-1.4.0.js,最新版本为1.6.0,但是不能使用会报错
shareWechat(){
let that = this;
uni.request({
url: app.appUrl +'index/getWechatSignature?token='+this.token,//获取服务端签名接口
method: 'POST',
data: {
url: encodeURIComponent(location.href.split('#')[0])//js动态获取当前域名,此域名需要在公众号端配置
},
success(res) {
let s = res.data.data
console.log(s)
jweixin.config({
debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: 'appid', // 必填,公众号的唯一标识
timestamp: s.timestamp, // 必填,生成签名的时间戳
nonceStr: s.noncestr, // 必填,生成签名的随机串
signature: s.signature,// 必填,签名
jsApiList: ["onMenuShareTimeline", "onMenuShareAppMessage"] // 必填,需要使用的JS接口列表
});
jweixin.ready(function () {
//获取“分享给朋友”按钮点击状态及自定义分享内容接口(即将废弃)
jweixin.onMenuShareAppMessage({
title: that.info.title, // 分享标题
desc: that.info.intro, // 分享描述
link: location.href, // 分享链接
imgUrl: that.author.headimgurl, // 分享图标
type: '', // 分享类型,music、video或link,不填默认为link
dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空
success: function (e) {
console.log(e)
}
})
})
}
})
}
服务端获取access_token,JsapiTicket,sha1签名等方法,官方给出的有例子
demo.open.weixin.qq.com/jssdk/sampl...
注意,注意,注意:
js传url需要encodeURIComponent(),后端需要urldecode(),url也是需要动态获取的,固定写死签名是不会成功的
本作品采用《CC 协议》,转载必须注明作者和本文链接